Android代码实现飞行模式的打开
16lz
2022-03-30
1.核心代码如下:
public static void openAirplaneModeOn(Context context,boolean enabling) { Settings.Global.putInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON,enabling ? 1 : 0); Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", enabling); context.sendBroadcast(intent);}
2.AndroidManifest.xml权限
3.说明如下
public static void setAirplaneModeOn(Context context,boolean enabling) { Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON,enabling ? 1 : 0); Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", enabling); context.sendBroadcast(intent); }
之前用上述的代码,始终报这样的错误:java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.AIRPLANE_MODE from pid=25190, uid=10081,后来查看了系统源码 ,终于发现了端倪,原来AIRPLANE_MODE_ON 从Setting.System下移到了Settings.Global下。所以在4.2以上的版本app没有权限修改Setting.Global的,解决的办法就是把应用放到源码中去编译,并且加上 更多相关文章
- Android(安卓)DownloadManager下载并安装apk
- Android(安卓)10 文件读写权限申请
- 开源分享!2021年最新 Android(安卓)资料汇总,从小白到大佬的进阶之
- Android(安卓)NDK 实现视音频播放器源码
- android 两个apk之间恭喜数据SharedPreferences
- android studio 读取短信
- android 6.0权限全面详细分析和解决方案
- 改变 Android(安卓)EditText 的边框
- Android(安卓)Activity设置全屏