0

Androidで現在のユーザー名と携帯電話番号を取得する方法はありますか?

Androidで現在の電話番号とユーザー名のユーザー情報を取得したい。

どんな体にもコードやアイデアがあります, 助けて..ありがとう..

4

3 に答える 3

2

この関数を使用して所有者情報を取得します

 public String [] OwnerInfo() {

            final AccountManager manager = AccountManager.get(context);
            final Account[] accounts = manager.getAccountsByType("com.google");
            try{
            if (accounts[0].name != null) {


                //get the account_name
                ownerinfo[0] = accounts[0].name;

                ContentResolver cr = context.getContentResolver();
                Cursor emailCur = cr.query(
                        ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
                        ContactsContract.CommonDataKinds.Email.DATA + " = ?",
                        new String[] { ownerinfo[0] }, null);
                while (emailCur.moveToNext()) {
                    //get the id
                    ownerinfo[1] = emailCur
                            .getString(emailCur
                                    .getColumnIndex(ContactsContract.CommonDataKinds.Email.CONTACT_ID));
                  //get the Email
                    ownerinfo[2] = emailCur
                            .getString(emailCur
                                    .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
                    String newName = emailCur
                            .getString(emailCur
                                    .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                    if (ownerinfo[3] == null || newName.length() > ownerinfo[3].length())
                         //get the Name
                         ownerinfo[3] = newName;

                    Log.v("Got contacts", "ID " + ownerinfo[1] + " Email : " + ownerinfo[2]
                            + " Name : " + ownerinfo[3]);
                }

                emailCur.close();
             // get the phone number
                final TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
                ownerinfo[4] = tm.getLine1Number();

                if(ownerinfo[4]==null)
                {
                if (ownerinfo[1] != null) {

                    // get the phone number
                    Cursor pCur = cr.query(
                            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                            null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                                    + " = ?", new String[] { ownerinfo[1] }, null);
                    while (pCur.moveToNext()) {
                        ownerinfo[4] = pCur
                                .getString(pCur
                                        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                        Log.v("Got contacts", "phone" + ownerinfo[4]);
                    }
                    pCur.close();
                }
            }
            }
            }catch(ArrayIndexOutOfBoundsException e){
                Log.d("OwnerInfo","ArrayIndexOutOfBoundsException due to email account not available in your device");              
            }
            return ownerinfo;

        }
于 2013-10-03T09:51:00.527 に答える
1

TelephonyManager を使用して携帯電話番号を取得できます。

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
String number_User = tm.getLine1Number();

また、マニフェスト ファイルにアクセス許可を追加します。

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

そのために、これはあなたを助けるでしょう..

final AccountManager manager = AccountManager.get(this);
final Account[] accounts = manager.getAccountsByType("com.google");
final int size = accounts.length;
String[] names = new String[size];
for (int i = 0; i < size; i++) {
  names[i] = accounts[i].name;
} 
于 2013-08-21T09:31:07.600 に答える
0

TelephonyManager を使用してこれを行うことができます。

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
String number = tm.getLine1Number();

この回答も参照してください。

getLine1Number()のドキュメントには、番号が「利用できない」場合、このメソッドは null を返すと記載されていますが、番号がいつ利用できないかについては記載されていません。

マニフェスト ファイルにアクセス許可を追加する必要があります。

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

所有者名については、こちらを参照してください。

于 2013-08-21T09:25:03.070 に答える