如何减少Android中的开放联系人的点击数
问题描述:
我是Android新手。我想在获得许可后打开联系人。我的问题是在开始时,我需要点击拖拽按钮,一个用于获取权限,另一个用于打开联系人。如何减少Android中的开放联系人的点击数
有什么办法得到许可,而无需任何点击2次后,立即打开联系人
答
是的,你可以处理像按钮单击事件这个
1.ask许可请求的许可结果
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String permission = android.Manifest.permission.READ_CONTACTS;
if (ActivityCompat.checkSelfPermission(SearchCityClass.this, permission)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(SearchCityClass.this, new String[]
{permission}, PERMISSION_CODE);
} else {
isPermissionGranted(true);
}
}
});
2.手柄许可结果在onRequestPermissionsResult
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSION_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
isPermissionGranted(true);
} else {
isPermissionGranted(false);
}
}
}
3.now像这样
public void isPermissionGranted(boolean permission) {
if (!permission) {
// permission not granted
} else {
// add here your code beacuse permisiion is granted
}
答
当你试图获得许可,您调用一个函数,告诉你需要创建一个方法。 (只需要获得许可的危险权限) 之后,当用户接受或拒绝时,它来到onRequestPermissionsResult。
这个方法里面你可以检查你是否获得了权限,做你的动作。
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
if (Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED) {
//do your action
}
希望能帮助你
你尝试添加你的行动,你的onRequestPermissionsResult? – Ashkan
是的,方法是运行您的代码,在那里获得授予权限的回调 –