如何以编程方式打开蓝牙设置活动?

时间:2012-12-17 09:31:18

标签: android android-intent settings

我想在按钮点击时打开蓝牙设置 像这样看图像bluetooth image

HomeActivity.java

button.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                final Intent intent = new Intent(Intent.ACTION_MAIN, null);
                intent.addCategory(Intent.CATEGORY_LAUNCHER);
                final ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.bluetoothSettings");
                intent.setComponent(cn);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity( intent);
            }
        });

5 个答案:

答案 0 :(得分:50)

也许我错过了一些东西,但这不是一个简单的未来证明解决方案吗?

Intent intentOpenBluetoothSettings = new Intent();
intentOpenBluetoothSettings.setAction(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS); 
startActivity(intentOpenBluetoothSettings); 

绝对不能“删除”其他设置。在手机上只显示一类设置。在平板电脑上,由于一些额外的空间,设置以主 - 细节布局显示,因此平板电脑屏幕的一半以上没有空白空间。这就是Android的设计方式,只需编写一个无法更改的应用程序。

根据@zelanix的建议,清单中的BLUETOOTH_ADMIN权限是必需的。

答案 1 :(得分:16)

我认为你应该尝试这个更简单的方法:

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

答案 2 :(得分:13)

使用

ComponentName cn = new ComponentName("com.android.settings", 
                   "com.android.settings.bluetooth.BluetoothSettings");

而不是

final ComponentName cn = new ComponentName("com.android.settings", 
                              "com.android.settings.bluetoothSettings");

启动BluetoothSettings设置

答案 3 :(得分:2)

adb shell am start -a android.settings.BLUETOOTH_SETTINGS

答案 4 :(得分:1)

如果要打开扫描对话框(不离开应用程序)。

    Intent bluetoothPicker = new Intent("android.bluetooth.devicepicker.action.LAUNCH");
    startActivity(bluetoothPicker);

BluetoothScanDialog