我可以从终端重启蓝牙吗?


Answers:


10

以下终端命令应通过adb shell或终端仿真器应用启用蓝牙:

su
am start -a android.bluetooth.adapter.action.REQUEST_ENABLE

在大多数版本的Android上,此命令将向用户显示一个弹出窗口,要求确认启用BT的请求。我认为,这是出于安全目的,只要不是系统的应用切换BT。

不幸的是,我还没有找到通过shell命令禁用BT的方法。

使用WiFi可以轻松得多,并且不会提示用户获得许可:

su
svc wifi enable

将其打开,并且

su
svc wifi disable

将其关闭。


感谢您的回答。我会尝试相同的。您还能为WiFi列出相同的内容吗?
克莱德·罗伯

使用WiFi信息编辑了我的答案。我还没有找到通过终端命令禁用BT的方法:(
Chahk

6

在android.bluetooth.IBluetoothManager中,有一些参数

TRANSACTION_registerAdapter =(android.os.IBinder.FIRST_CALL_TRANSACTION + 0); TRANSACTION_unregisterAdapter =(android.os.IBinder.FIRST_CALL_TRANSACTION + 1); TRANSACTION_registerStateChangeCallback =(android.os.IBinder.FIRST_CALL_TRANSACTION + 2); TRANSACTION_unregisterStateChangeCallback =(android.os.IBinder.FIRST_CALL_TRANSACTION + 3); TRANSACTION_isEnabled =(android.os.IBinder.FIRST_CALL_TRANSACTION + 4); TRANSACTION_enable =(android.os.IBinder.FIRST_CALL_TRANSACTION + 5); TRANSACTION_enableNoAutoConnect =(android.os.IBinder.FIRST_CALL_TRANSACTION + 6); TRANSACTION_disable =(android.os.IBinder.FIRST_CALL_TRANSACTION + 7);
TRANSACTION_getAddress =(android.os.IBinder.FIRST_CALL_TRANSACTION + 8); TRANSACTION_getName =(android.os.IBinder.FIRST_CALL_TRANSACTION + 9);

android.os.IBinder.FIRST_CALL_TRANSACTION = 1

因此,如果您想在ADB Shell超级用户模式(su)中关闭蓝牙,请使用有根设备

service call bluetooth_manager 8

如果您想再次打开蓝牙

service call bluetooth_manager 6

我使用的设备是带有Android 4.4.2的HTC One
Jamy 2014年

确认,这可以在Android 4.2.2上运行
pevik

Service bluetooth_manager does not exist在Android 4.1.2上
davide 2015年

3

启用蓝牙:
service call bluetooth 3

禁用蓝牙:
service call bluetooth 4


否定投票者:您能否通过此答案(在编辑后)确定问题所在?这些在我的植根电话中都可以正常工作su-因此从技术上讲AFAIK没错。
Narayanan

1
启用蓝牙:服务呼叫蓝牙3禁用蓝牙:服务呼叫蓝牙5正在我的HTC Desire X上运行
Anvesh Yalamarthy 2014年

1
service call bluetooth 5在我的Android 4.2.1中可以禁用蓝牙。
Firelord

在“银河星光GT-6810P”,正确的数字是3和5
达维德

1

这可以从外壳中进行:

am start -a android.bluetooth.adapter.action.REQUEST_ENABLE & input keyevent 20 & adb shell input keyevent 21 & adb shell input keyevent 23

基本上,它会导致对话框出现,然后发送击键以接受命令


0

我的解决方案有效。

am start -a android.bluetooth.adapter.action.REQUEST_ENABLE
sleep 1
input tap 872 1072

请注意,执行第一个命令时,它将跳出一个窗口,要求您选择ALLOW。

因此,您需要自动点击命令。

您可以通过启用开发人员选项->指针位置,然后触摸ALLOW按钮来获得X,Y位置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.