-1

Androidでアプリを開発する方法を学んでいます。私はonClickボタンを持っています。それは私のSMSを読み、各SMSの本文をチェックする必要があります。1つのSMSに「WORD」が含まれている場合は何かをします。

これを使って達成するべきですよね?

 String body = sms.getMessageBody().toString();



                while (body.contains("WORD"))
                   DO SOMETHING

前もって感謝します。

編集

たとえば、ボタンを押すことなくこれを行う方法はありますか?

4

3 に答える 3

1

新しいメッセージで確認したい場合は、BroadcastReceiver を作成する必要があります

AndroidManifest.xml 宣言:

<receiver android:name=".MySMSReceiver "> 
<intent-filter> 
        <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
</intent-filter> 

ブロードキャストレシーバー:

public class MySMSReceiver extends BroadcastReceiver {

@Override
public void onReceiver(Context context, Intent intent) {

   Object[] pdus=(Object[])intent.getExtras().get("pdus");
   String sender="";

   StringBuilder text=new StringBuilder();

   // get sender from first PDU
   SmsMessage shortMessage=SmsMessage.createFromPdu((byte[]) pdus[0]);

   sender=shortMessage.getOriginatingAddress();

   for (int i=0;i<pdus.length;i++) {
       shortMessage=SmsMessage.createFromPdu((byte[]) pdus[i]);
       text.append(shortMessage.getDisplayMessageBody());
   }

   while (text.contains("WORD")) {
       // DO SOMETHING 
   }

   Log.d("SMSReceiver","SMS message sender: " + shortMessage.getOriginatingAddress());
   Log.d("SMSReceiver","SMS message text: " + shortMessage.getDisplayMessageBody());
 }
}
于 2013-08-12T11:44:27.930 に答える
1

if ステートメントを使用する必要がある場合の代わりに...
if (body.contains("WORD"){ DO SOMETHING }

于 2013-08-12T12:37:54.457 に答える