5

ユーザーの介入なしに ADB から Bluetooth を開始することは可能ですか? 私は試した:

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

ただし、これにはユーザーが [ok] を押す必要があります。と:

service call bluetooth 3

何もしません。init.rc で bluetoothd サービスを有効にしても機能しません。

service bluetoothd /system/bin/bluetoothd -n
    class main
    socket bluetooth stream 660 bluetooth bluetooth
    socket dbus_bluetooth stream 660 bluetooth bluetooth
    # init.rc does not yet support applying capabilities, so run as root and
    # let bluetoothd drop uid to bluetooth with the right linux capabilities
    group bluetooth net_bt_admin misc
    enabled

そして、私はADBからのコマンドを好みます. (誰かが疑問に思っているなら、FCC テストに必要です。)

4

2 に答える 2

3

それが機能する場合、アプリは Bluetooth の状態を簡単に変更できます。コードは非常にシンプルです。

BluetoothAdapter.getDefaultAdapter().enable()

これは、特定のインテントをリッスンするサービスのみを備えた「ヘッドレス」アプリケーションである可能性があります。それをインストールしてから、アクティベーターの意図をブロードキャストできます。

アプリケーションをアプリの「ドロワー」に表示させたくない場合 ([設定] -> [アプリ] のみ)、ランチャーとメイン インテント フィルターをAndroidManifest.xmlファイルから削除します。つまり、これらを削除します。

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

この時点から、マニフェスト ファイルで定義したインテントでアプリ/サービスを開始できます。たとえば、アクションcom.company.service.bluetooth.ONでサービスのインテント フィルタを作成して登録し、adb コマンドで開始できます。

am startservice -a com.company.service.bluetooth.ON

電話がルート化されていない場合、他の方法はないようです。ルート化されている場合は、動作するservice call bluetooth 3はずです。

実用的なソリューションは、このチュートリアルで説明されています: How to launch an Android app from adb - And toggle bluetooth . 彼らはこのアプリを使用しています: Bluetooth オン/オフ切り替えアプリ。

于 2013-08-28T19:40:25.270 に答える