![](/img/trans.png)
[英]Get Bluetooth device information from the Android bluetooth device picker
[英]Android Bluetooth Device Picker Usage
我的應用程序需要藍牙連接。 在第一階段,我正在嘗試打開標准活動“藍牙設備選擇器”,以幫助用戶掃描新設備或從列表中選擇一個設備。
問題是我無法獲得藍牙設備選擇器的任何工作示例。 任務很簡單。 用Intent “android.bluetooth.devicepicker.action.LAUNCH”啟動一個Activity
並且設備選擇器正在打開而沒有任何問題。
但是設備選擇器需要四個附加功能 ,我無法確定下面列出的兩個附加功能的確切參數。
.putExtra("android.bluetooth.devicepicker.extra.LAUNCH_PACKAGE","com.extreme.controlcenter"
.putExtra("android.bluetooth.devicepicker.extra.DEVICE_PICKER_LAUNCH_CLASS","com.extreme.controlcenter.WelcomeActivity")
我認為參數應該是那個
* “android.bluetooth.devicepicker.extra.LAUNCH_PACKAGE” *
應該有我的包的名稱,所以我只通過了它。 那就是“com.extreme.controlcenter”
第二個應該是必須接收在選擇設備后完成的廣播的組件的名稱。 在這里,我嘗試將具有onReceive()函數的類的名稱。
但問題是當在設備選擇器中拾取設備時,不會調用onReceive()函數!
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
//Device Selected on Device Picker
if("android.bluetooth.devicepicker.action.DEVICE_SELECTED".equals(action)) {
//context.unregisterReceiver(this);
BluetoothDevice device = (BluetoothDevice) intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
Toast.makeText(context, "device" + device.getAddress(), Toast.LENGTH_SHORT).show();
String MAC = device.getAddress();
//Log.d("my", MAC);
Intent intent2 = new Intent(WelcomeActivity.this, ControlActivity.class);
intent2.putExtra(EXTRA_DEVICE_ADDRESS, MAC);
startActivity(intent2);
}
};
我創建了一個Intent過濾器,並在主Activity的onCreate()中注冊了一個接收
// Register the BroadcastReceiver
IntentFilter filter = new IntentFilter("android.bluetooth.devicepicker.action.DEVICE_SELECTED");
registerReceiver(mReceiver, filter);
有一件事是,如果我不提供這兩個額外的東西, 廣播事件就會成功收到。 但是這個代碼只能在我的TAB上運行,但同樣會在手機上崩潰。 所以我認為提供這兩個額外內容是強制性的。
提前致謝 !
您的EXTRA中的“com.extreme.controlcenter.WelcomeActivity”需要是一個BroadcastReceiver類,例如MyBroadcastReceiver.class.getName()。 我也在標簽內的清單中聲明了它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.