クイック検索ボックスに結果を提供するアプリケーションを作成する予定です。ユーザーを「検索可能なアイテム」の設定に移動する方法は?
Android 1.6の「検索可能なアイテム」画面にユーザーを誘導するためのインテントを起動する方法はありますか?
クイック検索ボックスに結果を提供するアプリケーションを作成する予定です。ユーザーを「検索可能なアイテム」の設定に移動する方法は?
Android 1.6の「検索可能なアイテム」画面にユーザーを誘導するためのインテントを起動する方法はありますか?
開発者向けドキュメントに、このための意図はありません。私はあなたがソースを掘り下げなければならないと思う。
また、インテントが見つかった場合は、すべての電話機で標準ではないかもしれないという事実の影響を考慮する必要があります。
本当に必要な場合は、私は自分自身に質問します。 Androidでかなり強力な検索機能があり、同じことをするような独自の「検索エリア」の設定作業(あなたが示したようなもの)を思いつくことができるはずです...あなたの意図がここにあると仮定するとです。
警告:未記載の行動、ドラゴンズ先送り!私が発見した
一つの解決策は、このように、検索設定アクティビティを起動することです:あなたは「検索可能なアイテム」を選択するようにユーザーに伝え、そこにあなたのアプリケーションを有効にすることができ
final Intent searchSettings = new Intent("android.search.action.SEARCH_SETTINGS");
startActivity(searchSettings);
。私はAndroid 2.3.3と4.0でこれをテストしました。もっと多くのバージョンでテストして、ここに結果を投稿してください:)。
これは文書化されていないため、考えられるすべての予防策を講じてください。 1つの簡単な予防策は、意図が解決されない場合にスローされるActivityNotFoundException
をキャッチし、その機能が利用できないことをユーザーに知らせることです。しかし、より良い解決策は、hereと概説されています。
編集:これは実際に文書化されています。あなたはSearchManager.INTENT_ACTION_SEARCH_SETTINGS
でそのアクションを見つけることができますので、上記のコードは、のように記述する必要があります:あなたはSearchManager
がINTENT_ACTION_SEARCH_SETTINGS
と呼ばれる静的メンバを持っているかどうかをテストし、それに応じてUIを構成するためにJavaリフレクションを使用することができます
final Intent searchSettings = new Intent("SearchManager.INTENT_ACTION_SEARCH_SETTINGS");
startActivity(searchSettings);
。このメンバーはAPIレベル8(Android 2.2 Froyo)で追加されているため、その下のものでは動作しません。
Intent
(見つけることができる)は、ユーザーを「検索可能なアイテム」の設定ページに直接移動させるものではありません。
私はFelix`sの答えを改善したいのですが、そう... 実際には、次の手順を使用して「検索可能なアイテム」設定ページに直接ユーザーを取ることができます。
Intent searchSettings = new Intent("com.android.quicksearchbox.action.SEARCHABLE_ITEMS");
startActivity(searchSettings);
しかし、私は奇妙な行動がありました私のデバイスでは、パッケージの名前がアプリの名前の代わりに表示されました。
実際には、アプリケーションのシステム環境設定でチェックボックスをオンにしてグローバル検索を有効にすることをお勧めします – pixel