我試圖捕獲手機上收到的短信,但是當手機收到短信時,方法'onReceive'未被調用。這是我的代碼:短信廣播接收器不在Android 6上調用
我有廣播接收器在 'AndroidManifest.xml中' 聲明的標籤 '應用' 裏面:
<receiver android:name=".util.IncomingSmsReceiver"
android:exported="true">
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
這是IncomingSmsReceiver.java
public class IncomingSmsReceiver extends BroadcastReceiver {
public static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "onReceive executed");
if (intent.getAction().equals(SMS_RECEIVED)) {
...
}
}
}
我正在模擬器谷歌Nexus 5與Android 6的測試。當我在模擬器中發送一個短信(假)通知顯示好像它接收得很好,我可以使用它在帶模擬器的默認應用程序中。在Android Studio的logcat中沒有出現,你已經運行了方法onReceive
,或代碼寫在裏面。我試圖改變優先級,我試過使用android:enabled="true"
,我試過使用registerReceiver
,我還沒有得到它工作。有誰知道我錯過了什麼?
是的,我已經把這些權限: '<使用許可權的android:NAME = 「android.permission.RECEIVE_SMS」/> <使用許可權的android:NAME =「android.permission.WRITE_SMS 「/> <使用權限的android:name =」android.permission.READ_SMS「/>' –
我有一個活動,通過點擊一個按鈕執行,並在其中我嘗試使用'registerReceiver' –