31

我想在按钮单击时打开蓝牙设置,如图所示蓝牙图像

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);
            }
        });
4

5 回答 5

63

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

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

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

正如@zelanix 所建议的,清单中的BLUETOOTH_ADMIN权限是必需的。

于 2013-11-18T10:59:55.937 回答
30

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

startActivity(new Intent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS));
于 2017-03-27T12:30:11.737 回答
18

利用

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 设置

于 2012-12-17T09:37:06.750 回答
3

adb shell am start -a android.settings.BLUETOOTH_SETTINGS

于 2015-01-22T06:56:47.003 回答
2

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

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

蓝牙扫描对话框

于 2018-07-28T02:34:52.007 回答