2

検索で連絡先アプリを開く必要があるアプリを設計しています。私はコードを使用しています:

Intent intent = new Intent(Intent.ACTION_SEARCH);
intent.putExtra(SearchManager.QUERY, name); 
startActivity(intent);

私が抱えている問題は、これによりアプリ チューザーが開き、ユーザーが選択できる約 40 個のアプリが表示されるため、混乱する可能性があることです。連絡先アプリをデフォルトとして自動的に設定する方法、またはリストを最小化する方法はありますか?

次のコマンドを使用してみました。

intent.setData(ContactsContract.Contacts.CONTENT_URI);

これは、ACTION_VIEW などの他の種類の連絡先関連のアクティビティでも機能するようですが、ACTION_SEARCH インテントに追加すると、アプリが単にクラッシュします。

ありがとうございました。

4

2 に答える 2

1

これは、アプリの開発者として設定できるものではないと思います。同様の同類の他のすべてのアプリを上書きするからです。そのため、これはユーザーの選択としてのみ設定されます。

これは、ユーザーがアプリをデフォルトに設定する方法を説明しています。 http://www.howtogeek.com/howto/43135/how-to-change-the-default-application-for-android-tasks/

いいえ、これをオーバーライドする方法があるとは思いません。ユーザーの選択を奪うことは悪いことです。多くの人が準備を整えてアプリの評価を低くするリスクがあります。

あなたの質問を何度か読みましたが、そのたびにあなたが別のことを尋ねていることに気づきました。それでも、このリンクはあなたを正しい軌道に乗せるかもしれないと思います.同様の質問に答えます.

Androidの連絡先リストを呼び出す方法は?

その要点は、この行で連絡先アプリを直接ターゲットにする必要があるようです

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);

それが役立つことを願っています。

于 2012-08-19T11:00:01.073 に答える
1

Android の本来の動作方法に反するという Emile の意見には同意しますが、独自のセレクターを作成し、その目的のために起動するデフォルト アプリを作成する方法もあります。デフォルトのアプリを作成するということは、アプリの共有設定でそのアプリを指定することを意味します。

それについては別のスレッドで。

于 2012-08-19T12:06:47.513 に答える