0

Om ボタンをクリックすると、連絡先の選択ボックスが表示されます。連絡先のいずれかを選択するところから。そして、連絡先の電話番号を表示します。

しかし問題は、連絡先を選択した後、電話番号が表示されないことがあります。理由はわかりませんが、セレクターが facebook や watsapp の連絡先も表示しているためだと思います。

電話と SIM の連絡先のみをフィルターしてセレクターに表示するにはどうすればよいですか?

私は次のようなセレクターを作成しています:

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
        startActivityForResult(intent, 1);

次のような番号の処理と表示:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
Uri uri = data.getData();
if (uri != null) {
Cursor c = null;
try {
c = getContentResolver().query(uri, new String[]{ 
ContactsContract.CommonDataKinds.Phone.NUMBER,  
ContactsContract.CommonDataKinds.Phone.TYPE },
null, null, null);

if (c != null && c.moveToFirst()) {
String number = c.getString(0);
int type = c.getInt(1);
showSelectedNumber(type, number);
}
} finally {
if (c != null) {
c.close();
}
}
}
}
}

public void showSelectedNumber(int type, String number) {
    Toast.makeText(this, type + ": " + number, Toast.LENGTH_LONG).show();      
}

誰でもここで私を助けることができます。連絡先を選択するたびに、番号を表示する必要がありますか? 事前の感謝

4

1 に答える 1

0

これは私がアプリで使用するものです。

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_GET_CONTENT);

    if (Build.VERSION.SDK_INT <= 4) {
        intent.setType(Contacts.People.CONTENT_ITEM_TYPE);
    } else {
        intent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
    }
于 2013-08-02T08:39:22.533 に答える