Tôi có thể khởi động lại Bluetooth từ thiết bị đầu cuối không?


8

Tôi đã root Galaxy S 2 (I9100) và đang tự hỏi liệu tôi có thể khởi động lại Bluetooth trên điện thoại của mình thông qua ứng dụng khách trên thiết bị đầu cuối trên điện thoại của mình không.

Câu trả lời:


10

Lệnh đầu cuối sau sẽ bật Bluetooth thông qua trình bao adb hoặc ứng dụng Trình mô phỏng đầu cuối:

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

Trên hầu hết các phiên bản Android, lệnh này sẽ hiển thị cửa sổ bật lên cho người dùng yêu cầu xác nhận yêu cầu kích hoạt BT. Tôi tin rằng điều này đã được thực hiện cho mục đích bảo mật bất cứ khi nào một ứng dụng không phải là hệ thống đang bật BT.

Tôi không tìm thấy cách nào để vô hiệu hóa BT thông qua lệnh shell.

Với WiFi, điều đó dễ dàng hơn rất nhiều và không nhắc nhở người dùng cho phép:

su
svc wifi enable

sẽ bật nó lên, và

su
svc wifi disable

sẽ tắt nó đi


Cảm ơn câu trả lời. Tôi cũng sẽ thử như vậy. Bạn cũng có thể liệt kê tương tự cho WiFi?
Clyde Lobo

Chỉnh sửa câu trả lời của tôi với thông tin WiFi. Tôi chưa tìm được cách vô hiệu hóa BT thông qua lệnh đầu cuối :(
Chahk

6

trong android.bluetooth.IBluetoothManager, có một số tham số

TRANSACTION_registerAd CHƯƠNG = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0); TRANSACTION_unregisterAd CHƯƠNG = (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_isEnables = (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

Vì vậy, với thiết bị đã root, nếu bạn muốn tắt bluetooth ở chế độ siêu người dùng adb shell (su)

service call bluetooth_manager 8

nếu bạn muốn bật lại bluetooth

service call bluetooth_manager 6

Thiết bị tôi sử dụng là HTC One với Android 4.4.2
Jamy

Xác nhận, rằng điều này đang hoạt động trên Android 4.2.2
pevik

Service bluetooth_manager does not existtrên Android 4.1.2
davide

3

Bật bluetooth:
service call bluetooth 3

Vô hiệu hóa bluetooth:
service call bluetooth 4


Cử tri tiêu cực: bạn có thể giúp xác định vấn đề với câu trả lời này (sau khi chỉnh sửa)? Chúng hoạt động trong điện thoại đã root của tôi sau đó su- vì vậy về mặt kỹ thuật không có gì sai AFAIK.
Narayaan

1
Bật bluetooth: gọi dịch vụ bluetooth 3 Tắt bluetooth: dịch vụ gọi bluetooth 5 đang hoạt động trên HTC Desire X của tôi
Anvesh Yalamarthy

1
service call bluetooth 5hoạt động trong Android 4.2.1 của tôi để tắt bluetooth.
Firelord

Trên "Galaxy Fame GT-6810P", các số chính xác là 3 và 5.
davide

1

Điều này hoạt động từ một vỏ:

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

Về cơ bản, nó làm cho cuộc đối thoại xuất hiện và sau đó gửi tổ hợp phím để chấp nhận lệnh


0

Giải pháp của tôi hoạt động.

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

Lưu ý rằng khi thực hiện lệnh đầu tiên, nó sẽ nhảy ra một cửa sổ yêu cầu bạn chọn ALLOW.

Vì vậy, bạn cần lệnh nhấp tự động.

Bạn có thể nhận vị trí X, Y bằng cách bật tùy chọn Nhà phát triển-> Vị trí con trỏ, sau đó chạm vào nút ALLOW.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.