AppCompatActivityの場合は、その基底クラスFragmentActivityのメソッドonRequestPermissionsResultで、パーミッションリクエスト許可ダイアログの許可または拒否が選択された時の処理を書く。
FragmentActivity | Android Developers
[Android]複数の Runtime Permission 設定を GPSで実行する
複数のパーミッションを許可する場合を考える。
AndroidManifest.xmlで、
3つのパーミッション許可が必要。
activity_main.xmlで、
また、ConstraintLayoutとButton。
MainActivity.javaで、
未許可のパーミッションはリストに入れてリクエスト。
すべてが許可された場合、それ用のメッセージを表示。
![すべて未許可](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212042055.png)
すべて未許可。
![許可](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212042138.png)
許可。
![許可しない](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212042217.png)
許可しない。
![許可](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212042246.png)
許可とする。
![GRANTED](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212042416.png)
GRANTED.。
![DENIED](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212042605.png)
DENIED。
![GRANTED](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212042651.png)
GRANTED。
もう1回Button1でリクエストすると、
![残ってるWRITE_EXTERNAL_STORAGEのリクエスト](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212042821.png)
残ってるWRITE_EXTERNAL_STORAGEのリクエストだけ。
ACCESS_FINE_LOCATIONと
![CAMERA](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212043130.png)
CAMERAは終わってる。
WRITE_EXTERNAL_STORAGEも許可したら、
![GRANTED](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212043427.png)
GRANTED。
![すべてが許可された](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212044715.png)
すべてが許可された。
![次にButton1を押してもすべて許可](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212044809.png)
次にButton1を押してもすべて許可。
![確かに全部許可](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20210212/20210212044857.png)
確かに全部許可。