我试图确定在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
}
}
}
...或
BluetoothAdapter.getDefaultAdapter().enable();
前者在启用前要求用户获得权限,而后者只是默默启用蓝牙(但需要" android.permission.BLUETOOTH_ADMIN"权限)。是一种或其他旧的/过时的和/或是一种技术仅在某些设备上可用吗?或者仅仅是我个人喜欢的问题?
答案 0 :(得分:4)
Android Doc
中明确提到了这一点未经用户同意,不得启用蓝牙。如果要打开蓝牙以创建无线连接,则应使用ACTION_REQUEST_ENABLE Intent,这将引发一个请求用户打开蓝牙权限的对话框。 enable()方法仅适用于包含用于更改系统设置的用户界面的应用程序,例如"电源管理器"应用
这两种技术都可行。您必须根据您的目的和要求进行选择。 希望它能回答你的问题。
答案 1 :(得分:1)
我认为这可能会有所帮助......
https://stackoverflow.com/a/20142972/1386533
您还需要将以下权限添加到清单文件中。
android.permission.BLUETOOTH,
android.permission.BLUETOOTH_ADMIN
答案 2 :(得分:0)
这对我有用...... BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); mBluetoothAdapter.enable();