以编程方式在Android上启用蓝牙

Tro*_*roy 6 android bluetooth

我正在尝试确定在Android上以编程方式启用蓝牙的首选方式.我发现以下任何一种技术都有效(至少在Android 4.0.4上......):

public class MyActivity extends Activity {
    public static final int MY_BLUETOOTH_ENABLE_REQUEST_ID = 6;
    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, MY_BLUETOOTH_ENABLE_REQUEST_ID);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == MY_BLUETOOTH_ENABLE_REQUEST_ID) {
            if (resultCode == RESULT_OK) {
                // Request granted - bluetooth is turning on...
            }
            if (resultCode == RESULT_CANCELED) {
                // Request denied by user, or an error was encountered while 
                // attempting to enable bluetooth
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

要么...

BluetoothAdapter.getDefaultAdapter().enable();
Run Code Online (Sandbox Code Playgroud)

前者在启用之前要求用户获得许可,而后者只是默默地启用蓝牙(但需要"android.permission.BLUETOOTH_ADMIN"权限).是一种或其他旧的/过时的和/或是一种技术仅在某些设备上可用吗?或者仅仅是个人偏好的问题我使用的是什么?

the*_*ama 5

Android Doc中明确提到

未经用户直接同意,切勿启用蓝牙。如果要打开蓝牙以创建无线连接,则应使用 ACTION_REQUEST_ENABLE Intent,这将引发一个对话框,请求用户允许打开蓝牙。Enable() 方法仅适用于包含用于更改系统设置的用户界面的应用程序,例如“电源管理器”应用程序。

这两种技术都会起作用。您必须根据您的目的和要求进行选择。希望它能回答您的问题。


Rak*_*iya 1

我认为这会有所帮助......

/sf/answers/1410008071/

您还需要将以下权限添加到清单文件中。

android.permission.BLUETOOTH,

android.permission.BLUETOOTH_ADMIN