-1

我的應用程序讀取輸入的短信。我已經實現了接收器,在Manifest中添加了許可和接收器,但是當接收到SMS時,我會在logcat中獲得以下消息。權限拒絕:廣播意圖的行爲= android.provider.Telephony.SMS_RECEIVED

12-29 13:25:00.081 2030-2044 /? W/BroadcastQueue:權限拒絕: 廣播意圖{act = android.provider.Telephony.SMS_RECEIVED flg = 0x8000010(has extras)} from com.android.phone(pid = 5234, uid = 1001)不會從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"); 
     } 
    } 
} 

我已閱讀#2類似的線程,但沒有什麼幫助。我已經在Marshmallow操作系統上測試了這個,並允許SMS允許。

我怎樣才能收到的短信在我的應用程序?

編輯:

我能接收短信在我的應用程序被打開或者是背景Menifest文件receiver標籤設置exported = true後時。但是,當應用程序被關閉我在logcat中得到以下信息和無法接收短信

12-29 14: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:exported設置爲true

如果此組件可供其他應用程序使用,則設置爲true。從<activity><receiver><service>,或<provider>標籤的android:exported來。

+0

設置導出爲true顯示此消息logcat現在* I/ActivityManager:啓動proc 7308:com.tatvic.vatsal.test_uninstall_tracking/u0a666爲廣播com。 tatvic.vatsal.test_uninstall_tracking/com.tatvic.lib.uit.SmsReceiver * – Apurva

+0

@Apurva這不是一個錯誤。它只是說明活動管理器啓動了您的應用程序的過程,因爲您的廣播接收器已啓用。 (即它收到廣播) –

+0

但是SmsRecevier的'onReceive'方法沒有被調用。即使應用程序關閉,我如何才能收到回叫。 – Apurva

相關問題