9

Android携帯の所有者の姓名を取得する方法はありますか? インターネットで検索しましたが、運がありません。Stackoverlowでこの質問に出くわしましたが、これはすべての連絡先の名と姓を取得しています。私が必要とするのは、所有者の名と姓を取得することだけです。

4

3 に答える 3

23

これは ICS 以降でのみ利用できると思います - 詳細については、こちらをご覧くださいhttp://android-codelabs.appspot.com/resources/tutorials/contactsprovider/ex1.html

Cursor c = activity.getContentResolver().query(ContactsContract.Profile.CONTENT_URI, null, null, null, null);
int count = c.getCount();
String[] columnNames = c.getColumnNames();
boolean b = c.moveToFirst();
int position = c.getPosition();
if (count == 1 && position == 0) {
    for (int j = 0; j < columnNames.length; j++) {
        String columnName = columnNames[j];
        String columnValue = c.getString(c.getColumnIndex(columnName)));
        ...
        //Use the values
    }
}
c.close();

Android には、デバイスの所有者を表す個人プロファイルが含まれています。このプロファイルは "Me" プロファイルと呼ばれ、ContactsContract.Profileテーブルに格納されます。ユーザーのプロファイルからデータを読み取ることができます。

AndroidManifest.xml に READ_PROFILE および READ_CONTACTS 権限を追加します。

最も関連性の高いフィールドは、Contact の DISPLAY_NAME 列であり、おそらく StructuredName フィールドです。

于 2012-10-30T10:16:24.880 に答える
3

これを試して:

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;
}
于 2012-10-26T10:07:04.223 に答える
3

私はこのことを検索して、あなたに役立つことを願っています.

于 2012-11-05T08:19:40.000 に答える