如何减少点击Android中的开放联系人

时间:2017-07-05 08:22:52

标签: android permissions contact

我是android的新手。我想在获得许可后打开联系人。我的问题是一开始我需要点击按钮拖动时间,一个用于获得许可,一个用于打开联系人。

有没有办法在获得许可后立即打开联系人而无需第二次点击

2 个答案:

答案 0 :(得分:1)

是的,您可以像这样处理请求权限结果

1.具有按钮点击事件的权限

 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.现在为此创建一个方法

public void isPermissionGranted(boolean permission) {
    if (!permission) {
      // permission not granted
    } else {
     // add here your code beacuse permisiion is granted

}

答案 1 :(得分:0)

当您尝试获得许可时,您可以调用一个函数并告诉您的要求。 (只有获得许可才能获得危险许可) 在此之后,当用户接受或拒绝时,它会进入 onRequestPermissionsResult

在此方法中,您可以检查您是否获得了许可,然后执行您的操作。

         @Override
         public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
            if (Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED) {
            //do your action 
         }

希望能帮到你