GPo*_*tas 3 android broadcastreceiver android-intent android-broadcast
我在其他问题中看到了使用此解决方案的多个答案,以了解飞行模式是否更改:
IntentFilter intentFilter = new
IntentFilter("android.intent.action.AIRPLANE_MODE_CHANGED");
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("AirplaneMode", "Service state changed");
}
};
context.registerReceiver(receiver, intentFilter);
Run Code Online (Sandbox Code Playgroud)
但现在我想知道 onReceive 方法中的飞行模式是否打开或关闭。
谢谢。
如本答案所述,您可以通过以下方式检查飞行模式状态:
@SuppressWarnings("deprecation")
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
public static boolean isAirplaneModeOn(Context context) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
return Settings.System.getInt(context.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 0) != 0;
} else {
return Settings.Global.getInt(context.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
}
}
Run Code Online (Sandbox Code Playgroud)
如果返回的结果是true,那么飞行模式是ON,反之亦然,所以你的完整答案是:
IntentFilter intentFilter = new
IntentFilter("android.intent.action.AIRPLANE_MODE_CHANGED");
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("AirplaneMode", "Service state changed");
boolean airplane_active = isAirplaneModeOn(context);
}
};
context.registerReceiver(receiver, intentFilter);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8134 次 |
| 最近记录: |