Java 如何访问用户';她的全名

Java 如何访问用户';她的全名,java,android,Java,Android,我正在为学校做一个项目,我需要用户的全名,我将在我的应用程序的侧栏中显示。我尝试了以下几点: Cursor c = this.getContentResolver().query(ContactsContract.Profile.CONTENT_URI, null, null, null, null); int count = c.getCount(); String[] columnNames = c.getColumnNames(); boolean b = c.moveToFirst();

我正在为学校做一个项目,我需要用户的全名,我将在我的应用程序的侧栏中显示。我尝试了以下几点:

Cursor c = this.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];
        //nameView.setText(columnName);

    }
}
c.close();
Cursor c=this.getContentResolver().query(ContactsContract.Profile.CONTENT\u URI,null,null,null);
int count=c.getCount();
String[]columnNames=c.getColumnNames();
布尔b=c.moveToFirst();
int position=c.getPosition();
如果(计数=1和位置=0){
对于(int j=0;j
我在stack overflow上找到了多个论坛,但每当我打开名为shape的活动时,应用程序就会崩溃


有一个名为get account或类似的权限,但我不知道如何使用它,也找不到它。

get\u ACCOUNTS
已被移动到Android 6.0中的
联系人
权限组中。所以你需要申请联系许可。要请求任何权限,您可以使用以下代码

public  boolean isStoragePermissionGranted() {
if (Build.VERSION.SDK_INT >= 23) {

    if (checkSelfPermission(Manifest.permission.READ_CONTACTS)
            == PackageManager.PERMISSION_GRANTED) {
        Log.v(TAG,"Permission is granted");
        return true;
    } else {

        Log.v(TAG,"Permission is revoked");
        ActivityCompat.requestPermissions(this, new String[]{ Manifest.permission.READ_CONTACTS}, 1);
        return false;
    }
}
else { //permission is automatically granted on sdk<23 upon installation
    Log.v(TAG,"Permission is granted");
    return true;
}
}
要获取用户详细信息,还可以执行以下操作-

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
GoogleSignInAccount acct = result.getSignInAccount();
String personName = acct.getDisplayName();
String personGivenName = acct.getGivenName();
String personFamilyName = acct.getFamilyName();

您是否在清单文件中添加了READ_Contacts的权限非常感谢,但当我将代码放在您告诉我将其放入代码的位置时,我得到了一个“android name”值,该值被分配给字符串[]c,但我希望它显示用户的名称。我试着在手机上运行这个程序,认为模拟器可能有问题,但没有运气。有什么建议吗?它确实管用。我很抱歉,但我真的不知道你在用这些代码做什么。当我把它添加到我的程序中时,所有的东西都是红色的,我的应用程序不编译代码的哪一部分。获取权限还是获取用户名?在您提供的第二个代码中,所有蓝色部分都是红色的,当我运行它时,什么也得不到。另外,当我运行你给我的第一个代码时,我得到了“安卓名称”,这有解决办法吗?如何使用第二部分代码,请参阅
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
GoogleSignInAccount acct = result.getSignInAccount();
String personName = acct.getDisplayName();
String personGivenName = acct.getGivenName();
String personFamilyName = acct.getFamilyName();