-1

私のアプリは着信SMSを読み取ります。私は受信者を実装し、マニフェストにパーミッションとレシーバーを追加しましたが、SMSが受信されると、logcatに次のメッセージが表示されます。許可の否認:ブロードキャストインテントact = android.provider.Telephony.SMS_RECEIVED

12-29 13:25:00.081 2030-2044 /? (UID = 1001)com.android.phone(pid = 5234、 )からのインテント{act = android.provider.Telephony.SMS_RECEIVED flg = 0x8000010(エクストラ)}}はuidからエクスポートされません10665により受信 com.tatvic.vatsal.test_uninstall_tracking/com.tatvic.lib.uit.SmsReceiver

にマニフェスト:

<uses-permission android:name="android.permission.RECEIVE_SMS" /> 

<application 
    ....> 
    <receiver android:name=".SmsReceiver" 
     android:exported="false"> 
     <intent-filter android:priority="1000"> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
     </intent-filter> 
    </receiver> 
</application> 

SmsReceiver:

public class SmsReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction().equals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION) && intent.getExtras() != null) { 
      Log.d("MessageReceived", "MessageReceived"); 
     } 
    } 
} 

私はStackoverflowで同様のスレッドを読んだことが何も役立ちません。私はこれをMarshmallow OSでテストし、SMSの許可を得ました。

受信したSMSをアプリで受信するにはどうすればよいですか?

編集:アプリを開いたりMenifestファイルのreceiverタグにexported = trueを設定した後、バックグラウンドであるされたとき、私は私のアプリでSMSを受信することができています

。しかし、アプリが閉鎖された場合私はlogcatで次のメッセージを受け取り、はSMSを受け取ることができません。

12-2914:28:27.111 2030-2044 /? I/ActivityManager:開始PROC 8428:com.tatvic.vatsal.test_uninstall_tracking /放送用u0a666 com.tatvic.vatsal.test_uninstall_tracking/com.tatvic.lib.uit.SmsReceiver

+0

マニフェストの残りの部分を投稿してください。 'onReceive()'はメッセージをログに記録する以外に何かをしますか?もしそうなら、そのコードも投稿してください。 Logcatで例外が表示されますか? logcatをフィルタリングしないでください。貴重なものや重要なものが見つからないことがあります。 –

+0

これを試してみてくださいstackoverflow.com/a/41221852/5488468 –

答えて

0

あなたの受信機がになっているので、アプリケーション外で呼び出す場合は、android:exportedtrueに設定する必要があります。

このコンポーネントを他のアプリケーションで使用できる場合はtrueに設定します。 <activity>,<receiver>,<service>または<provider>タグのandroid:exportedから来る。

+0

exportedをtrueに設定すると、logcatにこのメッセージが表示されます。* I/ActivityManager:ブロードキャストcomの場合、proc 7308:com.tatvic.vatsal.test_uninstall_tracking/u0a666を開始します。 tatvic.vatsal.test_uninstall_tracking/com.tatvic.lib.uit.SmsReceiver * – Apurva

+0

@Apurvaこれはエラーではありません。これは、ブロードキャストレシーバが有効になっているため、アクティビティマネージャがアプリケーションのプロセスを開始したことを通知するだけです。 (つまり、ブロードキャストを受信しました) –

+0

SmsRecevierの 'onReceive'メソッドが呼び出されません。アプリが閉鎖されていても、どうすればコールバックを受け取ることができますか。 – Apurva

関連する問題