2017-07-05 6 views
-3

私はアンドロイドを新しくしました。私は許可を得た後に連絡先を開きたい。私の問題はスタート時です。私はボタントウ時間をクリックする必要があります.1つは許可を得るため、もう1つはコンタクトを開くためです。Androidで連絡先を開くためのクリック数を減らす

すぐに第二のクリックを必要とせずに許可を取得した後の連絡先を開くためにどのような方法があります

+0

支援するための希望は、あなたのonRequestPermissionsResultであなたのアクションを追加しようとしていますか? – Ashkan

+0

はい、方法は、許可されたアクセス許可のコールバックを取得する場所でコードを実行することです –

答えて

1

はい、あなたはボタンのクリックイベントでは、この

1.ask許可などの申請許可結果を処理することができます

onRequestPermissionsResultで
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.ハンドル許可結果

@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 

}

0

、関数を呼び出すと、あなたの要求を伝えるための方法を作成します。 (許可を得るために必要な危険な許可のみ) その後、ユーザーが受け入れるか拒否するかは、onRequestPermissionsResultになります。

この方法では、あなたが許可を得ているかどうかを確認することができます。

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

あなた

関連する問題