2016-10-22 5 views
0

私はバージョンアンドロイド5.0.3から7.X(API-23以上)で作業しているため、新しいパーミッションチェックシステムに疑念があり、チェックパーミッションシステムの仕組みがわからない。 manager.openCameraには、動作確認のための許可チェック方法が必要です。 まず、私はクラス(アクティビティではない)で作業していますが、 "this"ではコンテキストを取得する必要がありますが、コンテキストを取得することはできません。これはapi 24のためです。これを "これ"と置き換える必要があり、私はそれ以外の何かをする必要がありますか? ありがとうございます。Androidチェック許可

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { 
    // TODO: Consider calling 
    // ActivityCompat#requestPermissions 
    // here to request the missing permissions, and then overriding 
    // public void onRequestPermissionsResult(int requestCode, String[] permissions, 
    //           int[] grantResults) 
    // to handle the case where the user grants the permission. See the documentation 
    // for ActivityCompat#requestPermissions for more details. 
    return; 
} 
manager.openCamera(cameraId, mStateCallback, backgroundHandler); 

答えて

0

あなたは、そのクラスのコンストラクタでコンテキストを渡すのメンバ変数に格納し、そのメンバ変数に「これを」置き換える(またはあなただけメソッドに引数として渡すことができことができますコードを実行しています)。

しかし、アクセス権を要求するには、単にコンテキストを渡す代わりに、アクティビティを渡すことができます。このようにして、アクティビティを使用してcheckSelfPermissionとrequestPermissionsの両方を呼び出すことができます。

問題は次のとおりです。ユーザーの応答をどのように処理しますか?同じアクティビティ内でonRequestPermissionsResultメソッドを実装する必要があります。 これを処理できるアクティビティがあれば、BaseActivityクラス(Activityから継承)を作成し、そのメソッドをBaseActivity内でオーバーライドします。他のすべてのアクティビティはこのBaseActivityから継承する必要があります。

関連する問題