2016-03-18 6 views
2

インストール中にすべてのアクセス許可をアプリケーションに割り当てる必要があります。 私はXiomiとHuaweiの電話でプログラムでアクセス許可を受け入れる方法

adb install -g <apk_name> 

を使用してアプリをインストールした場合、私は知っているが、これはAPI 23以上で動作します。

私の問題はすべてbelow API 23です。カメラにアクセスしようとするとポップアップが表示され、オーディオなども録音されます。これらはシステムポップアップです。

携帯電話がAPI 23以上の場合、requestPermissions()を使用できますが、これらの種類のポップアップからアクセス許可をプログラムで受け入れるにはどうすればよいですか。

注 - これが私の自動テストのために必要とされます。

+0

何もない場合は、テストそのものの一部として、ダイアログで許可を受け入れて自動化する 'UiAutomator'を使用することができます。 – CommonsWare

+0

特定の場所に権限のポップアップが表示される必要はありません。未知の場所のテストを追加することはできません。 –

+0

'UiAutomator'は、ピクセル座標ではなくIDやキャプションを持つウィジェットで動作します。 – CommonsWare

答えて

-1

はまず、私はあなたがあなたがあなたの活動のコールバックメソッドを実装する必要がある権限を受け入れるように、とにかく

dependencies { 
... 
compile 'com.android.support:appcompat-v7:23.1.1' 
... 
} 

を使用してAPI < 23でContextCompat#requestPermissions()を実装することができると信じて。

@Override 
public void onRequestPermissionsResult(int requestCode, 
     String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case MY_PERMISSIONS_REQUEST_READ_CONTACTS: { 
      // If request is cancelled, the result arrays are empty. 
      if (grantResults.length > 0 
       && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

       // permission was granted, yay! Do the 
       // contacts-related task you need to do. 

      } else { 

       // permission denied, boo! Disable the 
       // functionality that depends on this permission. 
      } 
      return; 
     } 

     // other 'case' lines to check for other 
     // permissions this app might request 
    } 
} 

http://developer.android.com/training/permissions/requesting.html

+0

答えは、標準のAPIレベル23+ランタイムのアクセス許可です。問題は他のことです。 – CommonsWare

+0

私は、サポートライブラリを含めて、ContextCompat/ActivityCompatを使用することは、私のポストで示唆されているように動作すると考えています。あなたはそうではないと言っていますか? –

+1

@Russell ContextCompat#requestPermissions()はAPI23以下では動作しません –

関連する問題