gpt4 book ai didi

java - android 获取手机联系人时黑屏

转载 作者:行者123 更新时间:2023-12-01 12:18:05 25 4
gpt4 key购买 nike

我使用此代码从手机获取所有联系人,但当我使用它时会导致黑屏。

主题:

        Thread getAllContacts = new Thread () {
@Override
public void run () {
runOnUiThread ( new Runnable () {
@Override
public void run () {
getContacts ( getContentResolver () );
}
} );
}
};
getAllContacts.start ();

下面的代码是我的 getContacts 方法,我无法更新它以快速获取联系人:

public void getContacts(ContentResolver cr){
Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);

while (phones.moveToNext())
{
String id = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID));
String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Bitmap photo = G.getContactPhoto ( phoneNumber, getContentResolver () );

ContactListStructure item = new ContactListStructure();
String phone_number = phoneNumber.replaceAll("\\s+","").trim ().replace("+98", "0");
int check_mobile = phone_number.indexOf ( "09" );
if( check_mobile != -1){
item.id = Long.parseLong ( id );
item.name = name;
item.mobile = phone_number;
item.photo = photo;
item.checked = false;
G.contact_item.add ( item );
//personlst.add( new Person (item.name, item.mobile) );
}
}
phones.close ();
}

最佳答案

好的,我明白你的问题了。您正在 UI 线程上运行它。创建一个 AsyncTask 并在那里运行它。 tash 完成后,使用 runOnUIThread 方法显示联系人。

关于java - android 获取手机联系人时黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26863223/

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