Android代码实现飞行模式的打开

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)