Bisakah saya memulai ulang Bluetooth dari terminal?

8

Saya memiliki Galaxy S 2 yang telah di-root (I9100) dan bertanya-tanya apakah saya dapat me-restart Bluetooth di ponsel saya melalui klien terminal di ponsel saya.

Clyde Lobo
sumber

Jawaban:

10

Perintah terminal berikut harus mengaktifkan Bluetooth melalui adb shell atau aplikasi Terminal Emulator:

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

Pada sebagian besar versi Android, perintah ini akan menampilkan jendela sembul kepada pengguna yang meminta konfirmasi permintaan untuk mengaktifkan BT. Saya percaya ini dilakukan untuk tujuan keamanan setiap kali aplikasi yang bukan sistem mengubah BT.

Sayangnya saya belum menemukan cara untuk menonaktifkan BT melalui perintah shell.

Dengan WiFi itu jauh lebih mudah, dan tidak meminta izin pengguna:

su
svc wifi enable

akan menyalakannya, dan

su
svc wifi disable

akan mematikannya.

Chahk
sumber
Terima kasih atas jawabannya. Saya akan mencoba yang sama. Bisakah Anda juga mendaftarkan hal yang sama untuk WiFi?
Clyde Lobo
Mengedit jawaban saya dengan info WiFi. Saya belum menemukan cara untuk menonaktifkan BT melalui perintah terminal :(
Chahk
6

di android.bluetooth.IBluetoothManager, ada beberapa parameter

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

SO, dengan perangkat yang di-rooting, jika Anda ingin mematikan bluetooth di mode adb shell super user (su)

service call bluetooth_manager 8

Jika Anda ingin mengaktifkan Bluetooth lagi

service call bluetooth_manager 6
Jamy
sumber
perangkat yang saya gunakan adalah HTC One dengan android 4.4.2
Jamy
Konfirmasikan, bahwa ini berfungsi pada Android 4.2.2
pevik
Service bluetooth_manager does not existpada Android 4.1.2
davide
3

Aktifkan bluetooth:
service call bluetooth 3

Nonaktifkan bluetooth:
service call bluetooth 4

pengguna38665
sumber
Pemilih negatif: dapatkah Anda membantu mengidentifikasi masalah dengan jawaban ini (setelah diedit)? Ini bekerja di telepon saya yang di-rooting setelah su- jadi secara teknis tidak ada yang salah AFAIK.
Narayanan
1
Aktifkan bluetooth: panggilan layanan bluetooth 3 Nonaktifkan bluetooth: panggilan layanan bluetooth 5 berfungsi pada HTC Desire X saya
Anvesh Yalamarthy
1
service call bluetooth 5bekerja di Android 4.2.1 saya untuk menonaktifkan bluetooth.
Firelord
Pada "Galaxy Fame GT-6810P", angka yang benar adalah 3 dan 5.
davide
1

Ini bekerja dari shell:

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

Pada dasarnya itu menyebabkan dialog muncul dan kemudian mengirim penekanan tombol untuk menerima perintah

disneysw
sumber
0

Solusi saya berhasil.

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

Perhatikan bahwa ketika menjalankan perintah pertama, itu melompat keluar jendela meminta Anda untuk memilih MENGIZINKAN.

Jadi, Anda memerlukan perintah klik otomatis.

Anda bisa mendapatkan posisi X, Y dengan mengaktifkan opsi Developer-> Lokasi penunjuk, lalu sentuh tombol ALLOW.

pengguna3759386
sumber