gpt4 book ai didi

android - 选择带有电话号码的联系人而不是读取电话号码的问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:40 26 4
gpt4 key购买 nike

调用显示所有联系人的联系人选择器是通过此链接完成的(如 SO 上多次所述):

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

我使用以下代码 fragment 在 onActivityResult 中获取联系人姓名及其所有电话号码:

public void onActivityResult( int requestCode, int resultCode, Intent intent )
{
Uri contactUri = intent.getData();
ContentResolver resolver = getContentResolver();
long contactId = -1;

// get display name from the contact
Cursor cursor = resolver.query( contactUri,
new String[] { Contacts._ID, Contacts.DISPLAY_NAME },
null, null, null );
if( cursor.moveToFirst() )
{
contactId = cursor.getLong( 0 );
Log.i( "tag", "ContactID = " + Long.toString( contactId ) );
Log.i( "tag", "DisplayName = " + cursor.getString( 1 ) );
}

// get all phone numbers with type from the contact
cursor = resolver.query( Phone.CONTENT_URI,
new String[] { Phone.TYPE, Phone.NUMBER },
Phone.CONTACT_ID + "=" + contactId, null, null );
while( cursor.moveToNext() )
{
Log.i( "tag", "PhoneNumber = T:" + Integer.toString( cursor.getInt( 0 ) ) + " / N:" + cursor.getString( 1 ) );
}

可以像这样调用联系人选择器并只显示带有电话号码的联系人(也可以在 SO 上找到):

Intent intent = new Intent( Intent.ACTION_PICK );
intent.setType( ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE );
startActivityForResult( intent, REQ_CODE );

如果这样做,我只会在联系人选择器中看到至少有一个电话号码的联系人,这正是我需要的。不幸的是,通过上面的代码 fragment ,我只能得到显示名称,而不能再得到任何电话号码。

有人知道我必须更改什么才能获得电话号码吗?

提前致谢

最佳答案

像这样更改 Phone._ID 的 where 子句中的 Phone.Contact_Id:

   cursor = resolver.query( Phone.CONTENT_URI,
new String[] { Phone.TYPE, Phone.NUMBER },
Phone._ID + "=" + contactId, null, null );
while( cursor.moveToNext() )
{
Log.i( "tag", "PhoneNumber = T:" + Integer.toString( cursor.getInt( 0 ) ) + " / N:" + cursor.getString( 1 ) );
}

question 中有更多详细信息.

希望对你有帮助:)

关于android - 选择带有电话号码的联系人而不是读取电话号码的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com