我知道这是一个在这里被问到很多的问题,但我在我的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.感谢您的帮助!
答案 0 :(得分:0)
固定!出于某种原因,将目标SDK从23更改为19工作:)