2017-07-05 22 views
-3

我是Android新手。我想在獲得許可後打開聯繫人。我的問題是在開始時,我需要點擊拖拽按鈕,一個用於獲取權限,另一個用於打開聯繫人。如何減少Android中的開放聯繫人的點擊數

有什麼辦法得到許可,而無需任何點擊2次後,立即打開聯繫人

+0

你嘗試添加你的行動,你的onRequestPermissionsResult? – Ashkan

+0

是的,方法是運行您的代碼,在那裏獲得授予權限的回調 –

回答

1

是的,你可以處理像按鈕單擊事件這個

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 

}

0

當你試圖獲得許可,您調用一個函數,告訴你需要創建一個方法。 (只需要獲得許可的危險權限) 之後,當用戶接受或拒絕時,它來到onRequestPermissionsResult

這個方法裏面你可以檢查你是否獲得了權限,做你的動作。

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

希望能幫助你

相關問題