2011-08-04 11 views

答えて

1

ブロードキャストレシーバを使用してSMSを読み取ることができます。そして、そのSMSを抽出し、アンドロイドでDataBaseの値を保存します。最初のアクティビティチェックを呼び出すと、特定の値にデータベースが含まれ、アクティビティが開始されます。

public class ReadingMessage extends BroadcastReceiver { 

@Override 

public void onReceive(Context context, Intent intent) { 
    //---get the SMS message passed in--- 
    Bundle bundle = intent.getExtras(); 
    DBAdapter dbHelper = new DBAdapter(context); 
    SmsMessage[] msgs = null; 
    String msg=null; 
    String str=null; 
    if (bundle != null) 
    { 
     //---retrieve the SMS message received--- 
     Object[] pdus = (Object[]) bundle.get("pdus"); 

     msgs = new SmsMessage[pdus.length];    
     for (int i=0; i<msgs.length; i++){ 
      msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);     

      msg = msgs[i].getMessageBody().toString(); 
      str =msg.toUpperCase();   


      if(str.contains("your value")) 
      { 
      try{ 
       dbHelper.open(); 

       dbHelper.insertinfo(msg);     

       dbHelper.close(); 

      } 
      catch(Exception e) 
      { 
       e.toString(); 
      } 

      } 

     } 
      } 
    } 

} 

このコードはSMSを読むためのコードです。

public class StartActivity extends Activity{ 

    private static final int ACTIVITY_REGISTRATION1=0; 
    private static final int ACTIVITY_SENDALERT3=1; 
    private static final int ACTIVITY_REGISTRATION2 = 2; 

     Context context; 
     DBAdapter dbHelper=null; 
     Intent intent; 
     String db_activation=null; 
     Cursor cursor; 

    public StartActivity() 
    { 
     this.context=this; 
    } 

@Override 

/* Method Header 
* Method Name  : onCreate 
* Input Parameter : Bundle 
* Return Value  : nil 
*/ 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 

    dbHelper=new DBAdapter(this); 

    try 
    { 
    dbHelper.open(); 

    cursor = dbHelper.getActivtaion(); 
    if(cursor.getCount()==0) 
    { 

     intent=new Intent(this,Registration.class); 

     intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); 
     startActivityForResult(intent,ACTIVITY_REGISTRATION1); 
    } 
    else 
    { 
     for(int i=0;i<cursor.getCount();i++) 
     { 
      cursor.moveToNext(); 
      db_activation = cursor.getString(cursor.getColumnIndex(DBAdapter.KEY_ACTIVATION)); 

    if(db_activation.equals("1")) 

    { 


     intent=new Intent(this,SendAlert.class); 

     intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); 
     startActivityForResult(intent,ACTIVITY_SENDALERT3); 



    } 
    else 
    { 

     intent=new Intent(this,Registration.class); 

     intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); 
     startActivityForResult(intent,ACTIVITY_REGISTRATION2); 
    } 

    dbHelper.close(); 
} 
    } 
    } 
catch(Exception e) 
{ 
finish(); 
System.exit(0); 
    e.toString(); 
} 
} 
@Override 
protected void onDestroy() { 
    // TODO Auto-generated method stub 
    super.onDestroy(); 
    finish(); 

} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == Activity.RESULT_OK) 
    finish(); 
    } 
    } 

最初のアクティビティ

public long insertTruckinfo(String db_Truckmsg) 
    { 
    ContentValues cVal=new ContentValues(); 

    cVal.put(KEY_INFO,db_Truckmsg); 


    return db.insert(TRUCKINFO_TABLE, null,cVal); 

} 


public Cursor getActivtaion() 
{ 
    Cursor cursor =db.query(ACTIVATION_TABLE, new String[] {KEY_ID,KEY_ACTIVATION}, null,null, null, null, null); 
    return cursor; 
} 


public Cursor getTruckinfo() 
{ 
    Cursor cursor =db.query(TRUCKINFO_TABLE, new String[] {KEY_ID,KEY_INFO}, null,null, null, null, null); 
    return cursor; 
} 

このため、このコードは、データベース・クラスです。

私はあなたに役立つと思います....

+0

ありがとうございました! – iShader

+0

大変ありがとうございました.......!将来的にあなたの助けが必要です – iShader

1

ブロードキャスト受信機を使用して、すべての受信メッセージをキャプチャします。ただし、レシーバーの初期化の場所、方法、および方法は、アプリケーションによって異なります。起動時やアプリケーションの最初の起動時に行うことができます。

着信SMSをすべてスキャンし、内容と番号を読み取り、アプリケーション内のどこかにフラグをチェックして設定する必要があります。

関連する問題