問題タブ [headset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Motorola Razr Android 4.0.4 のヘッドセットからメディア ボタンをキャプチャする
これは私の最初の投稿ですので、私が何か間違ったことをしたり、何か間違ったことを言ったりした場合は、将来のためにお知らせください. 繰り返しますが、これが通常の書式設定でない場合はお知らせください。今後もこのサイトを活用し、貢献したいと考えています。
私は維持しているアプリを持っています。それはヘッドセット ボタンが実行するアクションを制御し、シングル クリック、ダブル クリック、ロング クリックなどのジェスチャ認識を備えています。アプリはすべてのテスト デバイス (Samsung Galaxy S3、Motorola) で正常に動作しています。 Droid 4、および異なるバージョンの android OS を実行している他のいくつか) ですが、最近、motorola razr ではアプリがまったく動作しないという報告を受けました。
私は最初、彼らが 4.1 を実行している新しい hd について話していると思っていましたが、どうやら Android 4.0.4 を実行している通常の motorola razr のようです (少なくとも、テスト デバイスが実行しているのはそれです)。デバイスに接続すると、アプリから何らかの応答がありました。ロング クリックとシングル クリックは実行できましたが、デバイスはダブルクリックなどのジェスチャを認識しませんでした。
しばらくグーグルで調べた後、フォーラムでこの問題について話している多くの人を見つけましたが、潜在的な修正について話している開発者を見つけることができませんでした.
これは私が 4.0.4 を実行していることを私が知っている唯一のデバイスなので、そのビルドを詳しく調べて、メモがあるかどうかを確認することから始めますが、誰かがこれらのデバイスで作業していて、これが発生する理由を知っている可能性があります。この件に関する知識をお持ちでしたら幸いです。
android - Bluetooth ヘッドセット ボタン イベント
ソースコード「BluetoothHandsfree.java」をチェックしますが、ソースコードを再コンパイルして特別なブロードキャストを追加するか、何らかのフラグを追加しない限り、それは不可能です。Google が Bluetooth API に自己定義のボタン イベントを追加して、Bluetooth ヘッドセット ボタン イベントで何でもできることを本当に願っています。ボタンをクリックするだけで、電話で音声コマンドを使用して任意のアプリを制御できます。タッチスクリーンではなく、AI プログラムに話しかけて、独自のアプリに機能を追加し、ボタンを押して何かを言ったり、何かを実行したりできます。とても簡単ですが、今 .......:(
Bluetoothヘッドセットのボタンクリックまたはダブルクリックイベントをキャッチしたい。Bluetoothヘッドセットのボタンをダブルクリックすると、電話が最後の番号をダイヤルすることは誰もが知っています。そのため、「onReceived()」にフィルターブロードキャスト「Intent.ACTION_NEW_OUTGOING_CALL」を追加しますブロードキャストを受信しました。ボタンをクリックすると受信しましたが、誰がこのメッセージをブロードキャストしているのかわかりませんか? 電話または Bluetooth ヘッドセット。
Android 4.0.3 では、カメラがアクティブな場合、Bluetooth ボタン電話 (HTC) をダブルクリックすると写真が撮れますが、まだイベントをキャッチできませんか? どうすれば捕まえられますか?? それとも不可能ですか?AT コマンドを受信し、アプリで何かを実行するには???
トレース ログ:
07-26 11:07:21.958: I/Bluetooth AT recv(1798): AT+BLDN
07-26 11:07:21.958: I/ブルートゥース HS/HF(1798): +BLDN
07-26 11:07:21.958: D/Bluetooth HS/HF(1798): searchKeyString input=ActivityRecord{4124aef0 com.htc.launcher/.Launcher}, キー=com.android.camera/.CameraEntry
07-26 11:07:22.138: D/PhoneUtils(1798): checkAndCopyPhoneProviderExtras: 一部またはすべてのエクストラがありません。
07-26 11:07:22.328: w/memalloc(1444): ashmem にフォールバック
07-26 11:07:22.328: D/memalloc(1444): ashmem: 割り当てられたバッファ ベース:0x41b15000 サイズ:294912 fd:59
07-26 11:07:22.328: D/memalloc(2137): ashmem: マップされたバッファ ベース:0x52eb1000 サイズ:294912 fd:102
07-26 11:07:22.328: I/ActivityManager(1590): ブロードキャスト net.dinglisch.android.taskerm/.ReceiverStaticCallRewriter の proc net.dinglisch.android.taskerm を開始: pid=4089 uid=10140 gids={1015, 1006 、3001、3002、3003}
07-26 11:07:22.338: I/Adreno200-EGLSUB(1444): : Android イメージ
07-26 11:07:22.338: 私/Adreno200-EGLSUB(1444): : RGBA_8888
07-26 11:07:22.378: I/dalvikvm(4089): ターゲット SDK の JNI アプリ バグ回避策を有効にしています オブジェクト レジストリには 1 個のエントリがありました
07-26 11:07:22.478: D/WirelessDisplayService(1590): CallReceiver: actionandroid.intent.action.NEW_OUTGOING_CALL
android - Android で電話のマイクを Sco Bluetooth ヘッドセットにルーティングする
昨年の投稿でのこれらのチャンスがどのようにスローされたかは、このアプリケーションでどれだけ苦労したかを示しています。今、私は最終段階に到達しましたが、コードが機能しない理由を本当に理解できません。私がやろうとしているのは、音声ストリームを電話のマイクから sco Bluetooth ヘッドセットにルーティングすることです。電話は Samsung Galaxy s2 で、ヘッドセットは Esco Plastronics です。Android Web サイトのドキュメントに従いましたが、これまでに行ったことは次のとおりです。
マニフェスト ファイルの許可は次のとおりです。
ログには、理解できない多くの情報が含まれているため、いくつかの行を添付しました。
助けてくれてどうもありがとう
android - 権限の拒否: ブロードキャスト android.intent.action.HEADSET_PLUG の送信が許可されていません
Google は明らかに、JB または 4.1 以降での内部ブロードキャストに対して、ますます多くの保護を導入しています。これは4.0でうまくいきましたか?新しいブロードキャストを送信する方法があるかどうか、おそらく sendOrderedBroadcast を許可付きで使用する方法があるかどうか知っていますか?
どれ?
android - 自動応答: 常識が間違っているようです
私は、非常に多くの人が信頼しているように見える「KeyEvent」メソッドを使用して、電話に自動的に応答する手段に取り組んできました。
この方法は、シミュレーターでは機能しますが、実際のデバイスでは機能しません。
私が使用しているコードは以下のとおりです。
シミュレーターでは、答えの「ボタン」が機能しているように見えます。残念ながら、実際の電話では、送信されている KeyEvent が完全に無視されているように見えます。
Android 2.3.* でこのアクションを実行する信頼できる方法を見つけた人はいますか?
android - Android タブレットと Bluetooth HFP
Bluetooth ヘッドセットからオーディオを録音するアプリケーションを作成しています。HTC Evo 4g LTE(4.0.3) でテストしています。ヘッドセットはペアリングされ、アプリケーションは意図したとおりに動作します。テストを進めるために、Bluetooth ヘッドセットをいくつかの Android タブレットに接続しようとしています。ヘッドセットは正常にペアリングされますが、接続できません。エラー ダイアログは表示されませんが、ペアリングされたデバイスのリストからヘッドセットを選択しても反応がありません。私の仮説は、両方のデバイスからハンズフリー プロファイルが削除されたというものです。私がテストしたデバイスには、Asus Nexus 7 (4.1) と Motorola Xoom (4.0) が含まれます。
私の仮説が正しいことを考えると、root アクセスを必要とせずに、欠落している HFP Bluetooth プロファイルを持つアプリケーションをパッケージ化する方法はありますか?
c# - PCのBluetoothヘッドセットに接続する
モバイルデバイスからの着信時に振動する振動ヘッドセットを持っています。このヘッドセットをパソコンで接続して、あたかも電話がかかってきたかのように「着信信号」を送信したい。
これは、コマンドラインまたは.net(C#)でどのように実行できますか?
ありがとうございました !!!!
android - SmartWirelessHeadset Pro アイコン
(私は、Sony SmartWatch 用の Android/Extension アプリを作成しました。現在、Sony Smart Wireless Headset Pro のサポートも追加しています。)
私の問題は、拡張機能の白黒 PNG アイコンが正しく表示されないことです (破損しているように見えますか?)。
最初は署名付きアプリケーションをビルドするときに圧縮エラーではないかと考えたので、署名なしバージョンをビルドし、圧縮されたアイコンを元のアイコンに置き換えてから署名しました。これはうまくいかなかったので、ヘッドセットが画像を読み取る方法に問題があるのではないかと思いますか?
また、GIMP で作成されたさまざまな画像カラー モード (1 ビット、24 ビット、32 ビット PNG) も試しましたが、うまくいきません。
このアイコンに特定の制限があるかどうか (サイズ 18x18px を除く)、またはファイルを特別な形式で保存する必要があるかどうかを知っている人はいますか?
android - Android startBluetoothScoはscoを開始していませんが、isBluetoothScoOnはtrueを返します
ここで質問している以下の問題を示すサンプルプロジェクトを使用してGitHubリポジトリを作成しました:
https
://github.com/paulpv/audio-loopback/tree/simplified/src/com/twistpair/wave/experimental/loopback
(「簡略化された」ブランチに固執し、「マスター」ブランチを無視してください)
2つの主要なファイルは次のとおりです。
- https://github.com/paulpv/audio-loopback/blob/simplified/src/com/twistpair/wave/experimental/loopback/MainActivity.java
- https://github.com/paulpv/audio-loopback/blob/simplified/src/com/twistpair/wave/experimental/loopback/AudioStateManager.java
免責事項:私は現在、CyanogenMod 10JellyBeanを実行しているSamsungEpicSPH-D700を1つだけ使用して、これをコーディングおよびテストしています。私は他のデバイスでこれを試したことがありませんが、おそらくそれは私が私の髪を引っ張って狂うのを防ぐのに役立つかもしれません。
私はAndroidBluetoothSCOを確実に開始および停止し、オーディオを数か月間キャプチャ/再生するために戦ってきました!
電話をSCOモードにできるようになると、AudioRecordとAudioTrackを介したキャプチャと再生は(それぞれ)文書化されているように正常に機能します。
私が抱えている問題は、電話を確実にSCOモードにすることができないことです!
startBluetoothSco()とsetBluetoothScoOn(true)を使用する「インターネット」の例はすべて単純でわかりやすいように見えますが、デバイスで使用すると、確実に機能することはほとんどありません。
SCOの開始と停止だけを行う独自のテストアプリを作成しましたが、これを確実に機能させることすらできません。
BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED EXTRA_STATE==CONNECTED.
私のコードは、ヘッドセットが接続または切断されたことを確実に検出できることをリッスンします。
接続を検出すると、ハンドラーはすぐにstartBluetoothSco()を呼び出します。
Aは、少なくとも1回はSCO_AUDIO_STATE
C O
NNECTEDに移行したことを誓うことができますが、99%の確率で、からの遷移が発生しDISCONNECTED->CONNECTING->DISCONNECTED
ます。
これが私のGitHubサンプルアプリからの注釈付きログ出力です:
Jawboneヘッドセットをオフにするとアプリが起動し、UIが更新されます...
...UIの更新が完了
しました現在のSCO_AUDIO_STATEを通知するスティッキーブロードキャスト...
...現在のSCO_AUDIO_STATE==DISCONNECTED; 私のヘッドセットがオフになっているので、予想されます。
SCO切断イベントリスナーが呼び出され、2つのsendMessagesを使用してUIを更新します...
...UIの更新が完了しました
約20秒後、Jawboneヘッドセットの電源を入れます...
ジョーボーン接続; 私のイベントリスナーは...
...私たちがSCOできることを確認します...
...そしてstartBluetoothSco()を自動呼び出ししますここに問題があり
ます!startBluetoothScoへのこの呼び出しがSCO_AUDIO_STATE==CONNECTEDにならないのはなぜですか?!?!
私のイベントリスナーは、現在のBT状態でUIを更新するためのsendMessageで終了します。
...UIの更新が完了
しましたstartBluetoothScoからの最初の結果が入ります...
...DISCONNECTEDからCONNECTINGに移動しまし
たstartBluetoothScoからの2番目の結果が入ります...
... CONNECTINGからDISCONNECTED
に移動しましたSCOがCONNECTINGからCONNECTEDに移行することを期待していました!
私のイベントリスナーが呼び出され、2つのsendMessagesを使用してUIを更新します...
...UIの更新が完了しました
SCOが接続されるまで約20秒待ちますが、接続されません。
アプリの「startBluetoothSco」ボタンを押します。
これは、17:00:37.626にBluetoothSco()を開始するためのまったく同じ呼び出しであることに注意してください。
startBluetoothScoからの最初の結果が入ります...
... DISCONNECTEDからCONNECTINGに移動
ここでは、17:00:37.626でのstartBluetoothSco()の自動呼び出しとは異なります。BluetoothHeadset.ACTION_AUDIO_STATE_CHANGEDイベント
を取得します...
...DISCONNECTEDからCONNECTINGに移動しました
別のBluetoothHeadset.ACTION_AUDIO_STATE_CHANGEDイベントを取得します...
...CONNECTINGからCONNECTED
イベントに移動し、1つのsendMessageを使用してUIを更新します
... UIの更新が完了しました(正直なところ、2回目に何がBluetoothScoOnを呼び出しているのかわかりません)
startBluetoothScoからの2番目の結果が入ります...
...CONNECTINGからCONNECTEDに移動しました
ついに!
私のイベントリスナーが呼び出され、2つのsendMessagesを使用してUIを更新します...
...UIの更新が完了しました
しばらくしてから「手動で」SCOを起動すると(今回は)すべてが機能しますが、ヘッドセットを接続した直後に自動的にSCOを起動した場合は機能しません。
さらに悪いことに、物事が期待どおりに機能していない場合、SCOの状態で奇妙な動作が見られます。
- startBluetoothSco()を妥当な3〜5秒間遅らせても、違いはないようです。私はそれを5秒以上遅らせようとしませんでした。オーディオがBTヘッドセットに流れ始めるのを5秒以上待つのは、ばかげています。
- 最後のDISCONNECTED状態以降、状態がCONNECTEDに変更されたことを示すブロードキャストイベントを受信したことがない場合でも、isBluetoothScoOn()を呼び出すとtrueが返されることがあります。
- UIからstartBluetoothSco()を「手動で」呼び出しても、SCOがすでにオンになっているかのように何も起こらないことがありますが、最後のDISCONNECTED状態以降、状態がCONNECTEDに変わったことを示すブロードキャストイベントを受信しませんでした。
- AudioTrackまたはAudioRecordを開こうとすると、音が出ません(SCOが誤動作していない場合、これと同じコードが正常に機能します。つまり、問題はSCOの状態であり、AudioTrack / AudioRecordの呼び出しではありません)。
- stopBluetoothSco()を呼び出しても、イベント報告状態がDISCONNECTEDになることはありません。
- setBluetoothScoOn(false / true)は違いを生じません。正直なところ、冗長に見える「startBluetoothSco()/ stopBluetoothSco()」と「setBluetoothScoOn(boolean)」の違いがわかりません。正常に動作する場合、startBluetoothSco()を呼び出すと、isBluetoothScoOn()がtrueを返し、setBluetoothScoOn(true)を呼び出す必要がないと思います。
- 電話を再起動しても違いはありません。
- ヘッドセットを再起動しても違いはありません。
- 別のヘッドセットに変更しても違いはありません。
- ヘッドセットがペアリングを失い、再ペアリングが必要になる場合があります。
Bluetoothサポートに関するGoogle/Androidの実績を考えると、これにはほとんど驚かされません。
誰かが私の悲惨さから私を解放し、AndroidでBluetooth SCOを確実に開始および停止する方法を明確に説明できますか?
PS:このような問題をエスカレートする公式チャンネルはありますか[w / Google?サムスン?]?または、StackOverflowは実際の答えを見つけるための私の最高のチャンスですか?