我有扎根的Galaxy S 2(I9100),想知道是否可以通过手机上的终端客户端重新启动手机上的蓝牙。
我有扎根的Galaxy S 2(I9100),想知道是否可以通过手机上的终端客户端重新启动手机上的蓝牙。
Answers:
以下终端命令应通过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
将其关闭。
在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
Service bluetooth_manager does not exist
在Android 4.1.2上
启用蓝牙:
service call bluetooth 3
禁用蓝牙:
service call bluetooth 4
su
-因此从技术上讲AFAIK没错。
service call bluetooth 5
在我的Android 4.2.1中可以禁用蓝牙。