我应该如何以编程方式打开三星设备上的飞行模式设置页面?

时间:2014-02-14 14:37:44

标签: android android-intent

我正在使用以下代码打开飞行模式设置页面。

startActivity(new Intent(Settings.ACTION_AIRPLANE_MODE_SETTINGS));

它在大多数设备上运行良好。但在三星型号= GT-19300上它引发了一个例外:

  

ActivityNot Found Exception.No找到处理意图的活动{android.Settings.ACTION_AIRPLANE_MODE_SETTINGS}

在三星设备上打开飞行模式设置的Intent字符串是什么?

2 个答案:

答案 0 :(得分:2)

if (android.os.Build.VERSION.SDK_INT < 17){
    try{
        Intent intentAirplaneMode = new Intent(Settings.ACTION_AIRPLANE_MODE_SETTINGS);
        intentAirplaneMode.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intentAirplaneMode);
    }
    catch (ActivityNotFoundException e){
        Log.e("exception", e + "");
    }
}
else{
    Intent intent1 = new Intent("android.settings.WIRELESS_SETTINGS");
    intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent1);
}

尝试此代码希望它能够正常工作。

答案 1 :(得分:0)

我已经尝试了@Rizwan Rasheed的答案,而else块打开了一个不是飞机模式活动的活动。我在三星J1中做过这个。

根据documentation

  

在某些情况下,匹配的活动可能不存在,因此请确保您   防止这种情况发生。

作为一个选项,在catch块中我建议你打开设备设置或一些警告对话框,在点击事件中打开相同的活动。

try {
    Intent intent = new Intent(Settings.ACTION_AIRPLANE_MODE_SETTINGS);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}
catch (ActivityNotFoundException e){
    // Open a dialog or device settings
}

要打开设备设置,请执行以下操作:

startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));