我正在尝试确定在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"权限).是一种或其他旧的/过时的和/或是一种技术仅在某些设备上可用吗?或者仅仅是个人偏好的问题我使用的是什么?
Android Doc中明确提到
未经用户直接同意,切勿启用蓝牙。如果要打开蓝牙以创建无线连接,则应使用 ACTION_REQUEST_ENABLE Intent,这将引发一个对话框,请求用户允许打开蓝牙。Enable() 方法仅适用于包含用于更改系统设置的用户界面的应用程序,例如“电源管理器”应用程序。
这两种技术都会起作用。您必须根据您的目的和要求进行选择。希望它能回答您的问题。
我认为这会有所帮助......
您还需要将以下权限添加到清单文件中。
android.permission.BLUETOOTH,
android.permission.BLUETOOTH_ADMIN
| 归档时间: |
|
| 查看次数: |
14620 次 |
| 最近记录: |