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源代碼時,這正是它在內部做的事情(當然沒有反映)。有什麼我失蹤?應該添加一些權限?
感謝您的幫助!