2017-07-08 2 views
0

Android用のアクセサリを作成しようとしています。電話に接続すると、アプリを起動して情報を表示します。ここまでは順調ですね。私はこの実行のデモを得た。Androidでアクセサリが接続されているときに画面または画面の一部を取得する

このアプリケーションを表示しておき、アクセサリを取り外さないと閉じられないようにします。私はそれをするいくつかの方法を見つけましたが、彼らは働くことが保証されていません。他のアプリの上に描画するには、実行中のプロセスを監視するような特定のユーザーアクションを有効にする必要があります。

enter image description here

この種の問題のための非ハック解決策はありますか?

自分のAndroidのバージョンをコンパイルできます。これが違いがある場合は、システム署名付きで自分のアプリに署名できます。

答えて

1

Androidソースコードを編集するオプションがある場合はcore/java/android/app/ActivityThread.javaファイルを編集してhandleMessage()メソッドを修正してください。この場所から活動が開始、再開、停止、破壊されます。この方法はそれ以上のことですが、ユースケースでは、ハードウェアがAndroid端末に接続されているかどうかを確認し、適切なメッセージを処理するか無視するかを選択できます。

Androidソースコードを編集するオプションがある場合は、これを達成するもう1つの方法は、ステータスバー自体を変更し、ステータスバーの上にビューを追加することです。ステータスバーはframeworks/base/packages/SystemUI/の下にあるSystemUIパッケージで管理されています。このファイル/frameworks/base/packages/SystemUI/res/layout/super_status_bar.xmlから始めて、それがどこで使用されているかを分析します。

最初のオプションでは、他のすべてのアプリの起動や再開をブロックすることができます.2番目の方法では、UIはステータスバーの一部になり、他のアプリは引き続き正常に機能します。

関連する問題