2012-01-26 28 views
1

メッセージを受信トレイに保存しないAndroid SMSアプリケーションを開発しています。 Webサービス呼び出しを使用してメッセージの内容を確認してから、ブロードキャストを削除する必要があります。 Webサービスの呼び出しのためのSMSReceiverandroid - SMS受信ブロードキャスト受信者が中止されました

if (messageBody.equals("somedata")) 
    { 

     Intent i = new Intent(context,Webservice.class);//webservice validation 
     i.putExtra("messageBody",messageBody) 
     startService(i); 

    // Stop it being passed to the main Messaging inbox 
     abortBroadcast(); 
    } 

IntentserviceためonReceiveで

は()executed.The受信機はこの前に中止され得ることはありません。 私はアンドロイドが新しくなっていますので、ブラスター受信機(SMS_RECEIVE)のonReceive()で開始されたインテントサービスでウェブサービスコールを行うのが適切かどうか教えてください。

+0

あなたはandroidmainfest.xmlファイルで読み取り権を持っていますか? – Lucifer

+0

はい私は次のアクセス権を与えています。 \t \t

答えて

1

使用はイコール(ことを確認するためにログインし、これを試してみてください、あなたのするmessagebody変数にスペースの問題がある可能性があります)がtrueを返します。そうであれば、onReceive()で何か時間を費やしていて、BroadcastReceiverが殺されている可能性があります。ドキュメントから:

http://developer.android.com/reference/android/content/BroadcastReceiver.html#onReceive(android.content.Context、android.content.Intent)

関数は(タイムアウトがあり、通常、そのプロセスのメインスレッド内で呼び出されるので、あなたはそれで長時間実行の操作を実行することはありません受信機がブロックされることと殺される候補を考慮する前にシステムが許容する10秒)。

1

それは

if (messageBody.trim().equals("somedata"))