2016-12-29 66 views
0

對於某些日誌記錄目的,我需要在我的設備上啓用藍牙HCI日誌。當然,這可以通過開發人員設置菜單輕鬆完成,但我的大多數用戶不會熟悉這一點,我希望以編程方式進行操作。這些設備不會生根,所以我無法手動編輯bt_stack.conf文件。以編程方式啓用藍牙HCI日誌

通過互聯網搜索時,我發現了一個隱藏的API方法BluetoothAdapter.configHciSnoopLog()。我真的不希望與SDK罐一塌糊塗,所以我想用反射才能訪問這個方法,像這樣:

Method configHciSnoopLogMethod = BluetoothAdapter.class.getDeclaredMethod("configHciSnoopLog", boolean.class); 
Object r = configHciSnoopLogMethod.invoke(BluetoothAdapter.getDefaultAdapter(), true); 

這非常適用於一下〜我測試設備的20%(返回true ),但其餘的(大約20個不同的設備)返回false。我正在給該應用程序正確BLUETOOTH_ADMIN權限,所以我不知道爲什麼它不起作用。當我查看主設置應用程序的AOSP源代碼時,這正是它在內部做的事情(當然沒有反映)。有什麼我失蹤?應該添加一些權限?

感謝您的幫助!

回答

1
Settings.Secure.putInt(context.getContentResolver(), "bluetooth_hci_log", 1); 
相關問題