2011-01-15 6 views

答えて

1

開発者向けドキュメントに、このための意図はありません。私はあなたがソースを掘り下げなければならないと思う。

また、インテントが見つかった場合は、すべての電話機で標準ではないかもしれないという事実の影響を考慮する必要があります。

本当に必要な場合は、私は自分自身に質問します。 Androidでかなり強力な検索機能があり、同じことをするような独自の「検索エリア」の設定作業(あなたが示したようなもの)を思いつくことができるはずです...あなたの意図がここにあると仮定するとです。

+0

実際には、アプリケーションのシステム環境設定でチェックボックスをオンにしてグローバル検索を有効にすることをお勧めします – pixel

3

警告:未記載の行動、ドラゴンズ先送り!私が発見した

一つの解決策は、このように、検索設定アクティビティを起動することです:あなたは「検索可能なアイテム」を選択するようにユーザーに伝え、そこにあなたのアプリケーションを有効にすることができ

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でそのアクションを見つけることができますので、上記のコードは、のように記述する必要があります:あなたはSearchManagerINTENT_ACTION_SEARCH_SETTINGSと呼ばれる静的メンバを持っているかどうかをテストし、それに応じてUIを構成するためにJavaリフレクションを使用することができます

final Intent searchSettings = new Intent("SearchManager.INTENT_ACTION_SEARCH_SETTINGS"); 
startActivity(searchSettings); 

。このメンバーはAPIレベル8(Android 2.2 Froyo)で追加されているため、その下のものでは動作しません。

Intent(見つけることができる)は、ユーザーを「検索可能なアイテム」の設定ページに直接移動させるものではありません。

0

私はFelix`sの答えを改善したいのですが、そう... 実際には、次の手順を使用して「検索可能なアイテム」設定ページに直接ユーザーを取ることができます。

Intent searchSettings = new Intent("com.android.quicksearchbox.action.SEARCHABLE_ITEMS"); 
    startActivity(searchSettings); 

しかし、私は奇妙な行動がありました私のデバイスでは、パッケージの名前がアプリの名前の代わりに表示されました。