ユーザーが組み込みの検索ダイアログでアプリケーション アイコンをクリックしたときにキャプチャする方法はありますか? カスタム ダイアログではなく、Android 組み込みの検索ダイアログを指していることに注意してください。
2 に答える
いいえ、SearchDialog
のアプリ アイコンをクリック可能にする方法はありません。
しかし、楽しみのために、仕事を終わらせるハックな回避策が存在すると仮定しましょう。クールです。目的の動作が得られました...しかし、次の 2 つの問題があります。
の動作は、
SearchDialog
他の Android デバイスと一致しません。ユーザーはすべての Android デバイスで検索インターフェイスが同じように機能することを期待しているため、これはユーザー エクスペリエンスを低下させます。アプリは内部 API を利用するようになりましたが、新しい SDK がリリースされたときに一貫性が保たれる場合とそうでない場合があります。ご存じのとおり、Android チームはアプリのアイコン
id
を から@+id/search_app_icon
に変更する可能性があります@+id/search_home_icon
。あなたのハックは内部 API に依存しているため、そのような変更により、アプリを実行している新しいデバイスがクラッシュします (ランタイム検索でsearch_app_icon
が返されるためnull
)。さらに、Samsung や HTC などの企業は、新しいデバイスを一般に公開する前に、内部 API を自由に変更できます。次の Samsung Galaxy では、クラスが完全に再実装されたり
SearchDialog
、UI/テーマが更新されたりする可能性があります。確実なことはわかりません。
したがって、基本的にはできません...そしてそうしようとするべきではありません。
退屈だからといって、答えにたどり着いたソースコードは次のとおりです。
のソース コードを確認すると、 が をプライベート インスタンス変数として保持している
SearchManager.java
ことに注意してください。SearchManager
SearchDialog
mSearchDialog
のソース コードを調べて、がアプリ アイコンをプライベート インスタンス変数として参照して
SearchDialog.java
いることに注目してください。また、 が への呼び出しによって変数を初期化することにも注意してください。SearchDialog
mAppIcon
SearchDialog
findViewById
のソース コードを調べて、がデフォルトでに設定されていない
search_bar.xml
ことに注意してください。パブリック SDK には this の動作を変更する (メソッドがないため、クリック可能にする信頼できる方法はありません。ImageView
clickable
View
Android のパブリック SDK を使用してこれを行うことは不可能だと確信しています。
唯一の解決策は独自のカスタム ダイアログを作成することだと思いますが、組み込みのダイアログではこれを達成できないことを恐れています。