您的位置:首页 > 移动开发 > Android开发

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"/>权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: