2013-03-11 15 views
5

私のアプリケーションから電話帳に電話番号のない連絡先をすべて非表示にしたいのですが... 電話帳のように、電話帳 - >設定に移動すると、 >設定(アクティビティ)(システムアプリ)電話帳の設定(連絡先のみのフィルタ)アンドロイドコードの例

から - 「電話番号を連絡先にのみ」私は 電話帳にユーザーをナビゲートする方法(コード)が必要

私のアプリでこの機能を実装したいと述べています私のアプリケーション活動。

悪い場合は、電話番号のないすべての連絡先をデータベースで非表示にします。電話帳が除外できるように。

現在、私は

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

コードの上に見つかった電話帳を開きますが、私は電話帳開きたい - > [設定ページを。

私は自分のアプリケーションから電話帳の内容「の電話番号と連絡先」を作りたい要するに

+0

私はあなたの質問を理解している場合、これは[Androidの連絡先は、単一のデータベースクエリに名前と電話番号(複数可)を表示?]あなたを助けるかもしれない[1] [1]:のhttp://のstackoverflow。com/questions/6587674/android-contacts-display-name-and-single-database-query – eeadev

+0

いいえ、自分の活動から電話帳 - >設定ページを開きます。私のアプリケーション内の電話帳の "電話番号のみの連絡先"設定 –

答えて

3

私は電話帳にユーザーをナビゲートする方法(コード)を必要とする - >設定(アクティビティ) (システムアプリ)

数百、おそらく数千のAndroid携帯があります。 「電話帳」アプリに関しては、必ずしも同じものはありません。これらの「電話帳」アプリには、必ずしも求めている機能はありません。また、ほとんどの場合、アプリ内の画面にアクセスして設定を制御するために、文書化されてサポートされているIntent構造体はありません。私が欲しい

が自分のアプリケーションから電話帳の電話番号なしですべての連絡先を非表示にすることである

次に、あなたはREAD_CONTACTS許可を経て、「電話帳」アプリを使用していますが、代わりに連絡先を自分で表示されませんする必要があります。 ContactsContractContentProvider

+0

あなたは電話帳アプリケーションがすべてのデバイスで同じではないことを意味しますか?各Android端末には、電話帳はありません(スタンダード、アクティビティ名などはありません)。連絡先データベースでこのことを行うことはできません。 –

+0

@AmirQayyumKhan: "電話帳アプリケーションはすべてのデバイスで同じではないのですか?" - デバイスメーカーは、Androidオープンソースプロジェクトの連絡先アプリを自社で置き換えることができます。 「連絡先データベースではこれを行うことはできません」 - なぜですか? – CommonsWare

2
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
startActivityForResult(intent, PICK_CONTACT); 
+0

あなたは自分のスクリプトをコピーしました!あなたは私の問題を経験しましたか? –

+0

もちろん、アミール。私はgoogleで検索し、コードスニペットも異なっています。問題が解決しない場合は、別の方法で試して説明してください。 – eeadev

+0

このコードは動作しません。あなたのコード 'startActivityForResult(intent、PICK_CONTACT); PICK_CONTACTは123などの定数です –

0

まあ、私は正常に私の主要なプロジェクトとしてAndroid用の連絡先アプリケーションを開発しました。私はこれがとても簡単だと信じています。ここで私がどのようにしたのかをコードです。

Cursor c = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, 
              null, 
              ContactsContract.Contacts.HAS_PHONE_NUMBER + " = 1", 
              null, 
              ContactsContract.Contacts.DISPLAY_NAME+" COLLATE LOCALIZED ASC"); 

      mAdapter = new MyAdapter(this, 
         R.layout.single_cell, 
         c, 
         new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME}, 
         new int[]{R.id.disp_name}, 
         CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); 

      listview.setAdapter(mAdapter); 

そして、MyAdapterに、私はSimpleCursorAdapterを拡張し、オーバーSimpleCursorAdapterの効率を活用するためにbindViewを()ridedています。ただし、連絡先を読むにはアクセス許可が必要です。あなたのandroid-manifestファイルにあります。言及してください、

<uses-permission android:name="android.permission.READ_CONTACTS"/> 

希望します。

関連する問題