1

ユーザーの電話のすべての連絡先情報の名前と電話番号を取得していますが、電話の現在のユーザーの名前と写真がこのリストに表示されません。

Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
    String trimedNumber = phoneNumber.replaceAll("[^A-Za-z0-9 ]", "").replaceAll(" ","");
    if(trimedNumber.length()<10) 
    {
        return returnValue;
    }
    trimedNumber = trimedNumber.substring(trimedNumber.length()-10, trimedNumber.length()-1);

    Cursor cursor = getContentResolver().query(uri, null, null, null, null);

    if (!cursor.moveToFirst()) {
        return returnValue;

現在のユーザーの情報を取得するにはどうすればよいですか?

4

1 に答える 1

0

現在のユーザーとは、電話の所有者を意味すると思います。この問題は常に解決できるわけではありませんが、所有者番号を取得する方法は次のとおりです。

/*
 * Tries to get the user's phone number. Note that there is no guaranteed solution to this problem because the phone
 * number is not physically stored on all SIM-cards, or broadcasted from the network to the phone. This is especially 
 * true in some countries which requires physical address verification, with number assignment only happening 
 * afterwards. Phone number assignment happens on the network - and can be changed without changing the SIM card 
 * or device (e.g. this is how porting is supported).
 */
private String getPhoneNumber() {
    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String phoneNumber = telephonyManager.getLine1Number();
    if (phoneNumber != null) return PhoneNumberUtils.formatNumber(phoneNumber);
    else return phoneNumber;
}
于 2012-08-29T22:10:42.060 に答える