2017-05-29 76 views
1

我有一個BaseAdapter,其中包含所有需要權限的列表以正確使用應用程序。來自適配器的OnResquestPermissionResult

我需要在onClick之後請求權限並檢查是否被授予。

對於請求,我使用

ActivityCompat.requestPermissions

,但我不知道如何獲得的結果。

是否可以調用Ø

nRequestpermissionsResultCallback

知道用戶的答案嗎?

我該怎麼辦呢?

回答

0

要檢查的權限(在這個例子是使用相機權限):

int permissionCheck = ContextCompat.checkSelfPermission(this, 
       Manifest.permission.CAMERA); 
    if (permissionCheck == PackageManager.PERMISSION_DENIED) { 
      // permission is not granted yet, let's ask for it 
      ActivityCompat.requestPermissions(this, 
        new String[]{Manifest.permission.CAMERA}, 
        MyActivity.cameraRequestCode); 
    } else { 
      // permission is already granted 
    } 

如果ActivityCompat.requestPermissions運行,然後進行對話會出現用戶,之後就可以趕上結果通過覆蓋活動的onRequestPermissionsResult這樣的:

@Override 
    public void onRequestPermissionsResult(int requestCode, 
              String permissions[], int[] grantResults) { 
     super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
     switch (requestCode) { 
      case MyActivity.cameraRequestCode: { 
       if (grantResults.length > 0 
         && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
        // action when permission granted 
       } else { 
        // action when permission denied 
       } 
       return; 
      } 
     } 
    } 

MyActivity.cameraRequestCode是一個靜態的INT,可以是任何唯一int值。

+0

感謝您的回答,但我想在不在活動中的適配器上實現回調。相反,如果我嘗試在活動中實現未找到的方法,請不要知道原因。 –

+0

很遺憾,onRequestPermissionsResult只能在活動或片段上覆蓋。如果您希望適配器處理結果,則必須將其從活動/片段傳遞到適配器。 – Archlin

相關問題