2016-07-19 14 views
1

Marshmallowの外部記憶域の書き込みの許可を求めています。 onRequestPermissionsResultを無効にするオプションはありません。私はrequestPermissionsに電話することができます。私は以下の方法を作成しました。今、結果に基づいて新しい行動を呼びたいと思います。私に手伝ってください。onRequestPermissionsResultが呼び出されていない

public static boolean verifyPermissions(Activity activity, 
      String[] grantResults) { 
     boolean allPermissionsGranted = true; 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
      for (String result : grantResults) { 
       int outresult = activity.checkSelfPermission(result); 
       if (outresult != PackageManager.PERMISSION_GRANTED) { 
        allPermissionsGranted = false; 
        break; 
       } 
      } 

      if (!allPermissionsGranted) { 
       activity.requestPermissions(grantResults, 1); 
      } 
     } 

     return allPermissionsGranted; 
    } 

私はFragmentです。私は直接以下のコードを試しましたが、エラーを表示しています 'プロダクトタイプのメソッドonRequestPermissionsResult(int、String []、int [])は、スーパータイプメソッドをオーバーライドまたは実装する必要があります。'

コード:私はonRequestPermissionsResultオーバーライドする任意のオプションを見ることができない

@Override 
    public void onRequestPermissionsResult(int requestCode, 
      @NonNull String[] permissions, @NonNull int[] grantResults) { 

    } 
+0

[アクティビティで上書きする](https://developer.android.com/reference/android/support/v4/app/ActivityCompat.OnRequestPermissionsResultCallback.html) –

+0

@MuratK。、そのオプションは表示されませんオーバーライド/インプリメンテーションのメソッドで使用します更新された投稿を確認してください。 –

答えて

1

このメソッドに渡すActivityでオーバーライドします。

+0

しかし、私は 'override/implement'メソッドでそのオプションを見ることができません。更新された投稿を確認してください。 –

+0

@ JeetenParmar:「断片がある」 - それは無関係です。あなたは 'Activity'に対して' requestPermissions() 'を呼び出しています。同じ 'Activity' **に' onRequestPermissionsResult() '**を実装する必要があります。 'Fragment'、* then *で' requestPermissions() 'を呼び出すように切り替えると、フラグメントのバックポート(' android.support.v4 ')を使用している限り、同じ 'Fragment'で' onRequestPermissionsResult .app.Fragment')、十分なサポートライブラリ(23.0.0以上)を新たに用意してください。 – CommonsWare

+0

私は 'requestPermissions()'をフラグメントからのみ呼び出しています。 –

関連する問題