お時間をいただきありがとうございます。
Bluetoothボタンを押すことでトリガーされる小さなアプリを作成しました。テキスト読み上げでユーザーに挨拶し、音声テキスト変換で処理されるコマンドを要求します。
私のアプリはBluetooth接続ごとに1回しか起動しないという事実を除いて、すべてうまく機能します。次に Bluetooth ボタンを押したままにすると、ビープ音だけが聞こえますが、アプリは起動しません。Bluetooth を切断して Bluetooth を再接続すると、アプリは正常に起動しますが、これも初回のみです。デフォルトのBluetoothアプリとして別のアプリを試してみましたが、呼び出されるたびに正常に動作するため、これは私の設計の問題であるに違いありません.
アプリを Bluetooth ボタン プッシュのデフォルトとして適格にするために、マニフェストに voice_command アクションを含めました。
<intent-filter>
<action android:name="android.intent.action.VOICE_COMMAND" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
私の作品はすべて 1 つのアクティビティ クラスに収められています。
public class MainActivity extends Activity implements OnSharedPreferenceChangeListener, OnInitListener, OnAudioFocusChangeListener {
テキスト読み上げを使用すると、アプリが初めて起動されたときに、onInit 関数で記述した最初のテキスト読み上げ呼び出しに到達することがわかります。
@Override
public void onInit(int status) {
}
アプリが完了し、finish() を呼び出すと、テキスト読み上げにより、アプリが次のシーケンスを実行することがわかります。
onPause();
onStop();
onDestroy();
既存の bluetooth 接続で bluetooth ボタンをもう一度押すと、アプリケーションが onInit() になりません。テキスト読み上げは読み上げられないので、それはかなり確信できます。これは、アプリがまったく起動されていないことを示唆しています。
Bluetooth 接続ごとの最初のアプリの起動に成功した後、アプリのキャッシュをクリアし、設定メニューからアプリを強制的に閉じようとしました。何も役に立ちません。
デバッグを続行するためにどこを見ることができるかについての提案は大歓迎です。Nexus 4 でテストしています。
ありがとうございました、
グレッグ