Android代码实现飞行模式的打开
2016-05-10 19:21
656 查看
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权限
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
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的,解决的办法就是把应用放到源码中去编译,并且加上
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>权限。
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权限
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
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的,解决的办法就是把应用放到源码中去编译,并且加上
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>权限。
相关文章推荐
- 如何调整Android Studio的新建项目窗口的大小
- androidstudio
- Android——自定义圆环View
- 老罗的Android之旅--网址
- android 各国语言对应的缩写
- Android动画概述
- Android笔记: ViewPager基本用法
- Android实现拖动进度条改变图片透明度
- Android中Popupwindow弹出框
- AOSP中常用repo&git命令
- AOSP建立本地mirror,更新,以及切换分支
- Android四大基本组件
- Android防止过快点击造成多次事件 一行代码搞定,特别简单,可以复用
- android studio sign apk
- Android中自定义ProgressDialog显示位置
- Android Activity为什么要细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy这么多方法让应用去重
- Android ViewPager无法使用wrap_content属性自适应高度
- Android framework修改----Android原生字体,连体字效果
- android edittext不弹出软键盘
- Android—进度条