AIRPLANE_MODE 的广播接收器不适用于 SDK 26
Broadcast receiver with AIRPLANE_MODE not working with SDK 26
通常,当用户更改 AIRPLANE_MODE
时,我使用一个简单的代码来放置 Toast
,并且它可以使用 targetSdkVersion 25
。
我的 AirPlaneModeReceiver :
public class AirPlaneModeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "I receive a Broadcast", Toast.LENGTH_SHORT).show();
}
}
清单中我声明接收者的部分:
<receiver android:name=".AirPlaneModeReceiver">
<intent-filter>
<action android:name="android.intent.action.AIRPLANE_MODE"/>
</intent-filter>
</receiver>
但是当我将目标 SDK 版本更改为 targetSdkVersion 26
时,它根本不起作用...
为什么?
根据文档:
您应该删除所有为隐式广播意图注册的广播接收器。
https://developer.android.com/about/versions/oreo/android-8.0-migration.html
参见第 "Remove broadcast receivers from your manifest file"
部分
通常,当用户更改 AIRPLANE_MODE
时,我使用一个简单的代码来放置 Toast
,并且它可以使用 targetSdkVersion 25
。
我的 AirPlaneModeReceiver :
public class AirPlaneModeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "I receive a Broadcast", Toast.LENGTH_SHORT).show();
}
}
清单中我声明接收者的部分:
<receiver android:name=".AirPlaneModeReceiver">
<intent-filter>
<action android:name="android.intent.action.AIRPLANE_MODE"/>
</intent-filter>
</receiver>
但是当我将目标 SDK 版本更改为 targetSdkVersion 26
时,它根本不起作用...
为什么?
根据文档:
您应该删除所有为隐式广播意图注册的广播接收器。
https://developer.android.com/about/versions/oreo/android-8.0-migration.html
参见第 "Remove broadcast receivers from your manifest file"
部分