Android 如何启用/禁用飞机模式?
我正在尝试以编程方式启用/禁用飞机模式,但以下代码不起作用。应用程序在运行时意外停止,我必须强制关闭Android 如何启用/禁用飞机模式?,android,android-intent,android-emulator,android-manifest,Android,Android Intent,Android Emulator,Android Manifest,我正在尝试以编程方式启用/禁用飞机模式,但以下代码不起作用。应用程序在运行时意外停止,我必须强制关闭 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_airplanemode); 检查飞机模式状态的代码 布尔值isEnabled=Settings.System.getIn
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_airplanemode);
检查飞机模式状态的代码
布尔值isEnabled=Settings.System.getInt(
getContentResolver(),
Settings.System.Planet_MODE_ON,0)==1
要切换的代码
Settings.System.putInt(
getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1);
重新加载意图
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", !isEnabled);
sendBroadcast(intent);
TextView a = new TextView(this);
a.setText("AIRPLANE MODE : "+isEnabled);
setContentView(a);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_airplanemode, menu);
return true;
}
尝试向Androidmanifest.xml文件添加所需的权限 尝试添加
android.permission.WRITE_SETTINGS
您需要执行以下操作。将以下内容添加到Manifesf文件中
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
这应该行得通,不需要添加context.sendBroadcast()。提供堆栈跟踪,但很可能您遇到了SecurityException,因为您没有修改系统设置的权限。尼古拉·埃列诺夫:非常感谢,但我如何提供堆栈跟踪…我是android新手,尝试了context.getmenuInflater(),但它会返回“无法解析上下文”将手机连接到USB,在终端中运行
adb logcat
,或检查Eclipse logcat视图。
Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 1);
newIntent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
newIntent.putExtra("state", true);
sendBroadcast(newIntent);