我的應用程序需要藍牙連接。在第一階段,我試圖打開標準活動「藍牙設備選取器」,以幫助用戶掃描新設備或從列表中選擇設備。Android藍牙設備選擇器使用
問題是我無法得到藍牙設備選擇器的任何工作示例。任務很簡單。以意圖開始一個活動「android.bluetooth.devicepicker.action.LAUNCH」
而設備選取器打開沒有任何問題。
但設備選取器需要四個臨時文件,我無法弄清下面列出的兩個附加文件的確切參數。
.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);
}
};
我已經創建了一個意圖過濾並登記在OnCreate接收()的主要活動
// Register the BroadcastReceiver
IntentFilter filter = new IntentFilter("android.bluetooth.devicepicker.action.DEVICE_SELECTED");
registerReceiver(mReceiver, filter);
一件事是,如果我不提供這兩個演員,在中廣播事件成功接收。但是,該代碼只能在我的TAB上運行,但同樣在手機中崩潰。所以我認爲提供這兩項附加功能是強制性的。
在此先感謝!