1
ここには多くの質問がありますが、私はAndroid BroadcastReceiverを実装しており、試しても何の問題もありません。私はちょうど私の携帯電話を拭いたので、他のアプリは受信機に干渉する必要はありません。実際、同じ機能を使っている友人のアプリを試してみましたが、コードはほぼ同じですが、実装はうまくいきませんでした。私はそれが暗闇の中でのショットだと知っていますが、なぜ次のコードが実行されていないのか知ることができるのだろうかと思いました。Android SMS BroadcastReceiverが発射されない
のAndroidManifest.xml
<uses-feature android:name="android.hardware.telephony" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".SMSReceiver">
<intent-filter>
<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) {
Log.d("msg", "called");
}
}
最小SDKが18で、ターゲットは、すべてのあなたの助けのための23のおかげです!
お使いの携帯電話はどのAndroidバージョンを実行していますか?あなたのReceiverは 'MapsActivity'と同じフォルダにありますか?インストール後少なくとも1回はあなたのアプリを起動して_stopped_状態から外しましたか? –
おそらく指定されているはずです.Nexus 6でAndroid 6.0.1を実行しています。はい、両方とも同じフォルダにあり、どちらも同じパッケージに入っています。最後の質問は...私は確信していません。 Android Studioで「デバッグ」ボタンを押してアプリを起動しました。私はまた、インストールされたアプリを私の電話で閉じて再オープンしました。レシーバーはまだ発砲していません。 – Nickersoft
[Androidの許可は、宣言しても動作しません](http://stackoverflow.com/questions/32635704/android-permission-doesnt-work-even-if-i-have-declared-it) ) –