33import android .Manifest ;
44import android .Manifest .permission ;
55import android .annotation .SuppressLint ;
6+ import android .os .Build ;
67import android .support .annotation .StringDef ;
78
89import java .lang .annotation .Retention ;
@@ -30,34 +31,39 @@ public final class PermissionConstants {
3031 public static final String SMS = Manifest .permission_group .SMS ;
3132 public static final String STORAGE = Manifest .permission_group .STORAGE ;
3233
33- private static final String [] GROUP_CALENDAR = {
34+ private static final String [] GROUP_CALENDAR = {
3435 permission .READ_CALENDAR , permission .WRITE_CALENDAR
3536 };
36- private static final String [] GROUP_CAMERA = {
37+ private static final String [] GROUP_CAMERA = {
3738 permission .CAMERA
3839 };
39- private static final String [] GROUP_CONTACTS = {
40+ private static final String [] GROUP_CONTACTS = {
4041 permission .READ_CONTACTS , permission .WRITE_CONTACTS , permission .GET_ACCOUNTS
4142 };
42- private static final String [] GROUP_LOCATION = {
43+ private static final String [] GROUP_LOCATION = {
4344 permission .ACCESS_FINE_LOCATION , permission .ACCESS_COARSE_LOCATION
4445 };
45- private static final String [] GROUP_MICROPHONE = {
46+ private static final String [] GROUP_MICROPHONE = {
4647 permission .RECORD_AUDIO
4748 };
48- private static final String [] GROUP_PHONE = {
49+ private static final String [] GROUP_PHONE = {
4950 permission .READ_PHONE_STATE , permission .READ_PHONE_NUMBERS , permission .CALL_PHONE ,
5051 permission .ANSWER_PHONE_CALLS , permission .READ_CALL_LOG , permission .WRITE_CALL_LOG ,
5152 permission .ADD_VOICEMAIL , permission .USE_SIP , permission .PROCESS_OUTGOING_CALLS
5253 };
53- private static final String [] GROUP_SENSORS = {
54+ private static final String [] GROUP_PHONE_BELOW_O = {
55+ permission .READ_PHONE_STATE , permission .READ_PHONE_NUMBERS , permission .CALL_PHONE ,
56+ permission .READ_CALL_LOG , permission .WRITE_CALL_LOG , permission .ADD_VOICEMAIL ,
57+ permission .USE_SIP , permission .PROCESS_OUTGOING_CALLS
58+ };
59+ private static final String [] GROUP_SENSORS = {
5460 permission .BODY_SENSORS
5561 };
56- private static final String [] GROUP_SMS = {
62+ private static final String [] GROUP_SMS = {
5763 permission .SEND_SMS , permission .RECEIVE_SMS , permission .READ_SMS ,
5864 permission .RECEIVE_WAP_PUSH , permission .RECEIVE_MMS ,
5965 };
60- private static final String [] GROUP_STORAGE = {
66+ private static final String [] GROUP_STORAGE = {
6167 permission .READ_EXTERNAL_STORAGE , permission .WRITE_EXTERNAL_STORAGE
6268 };
6369
@@ -79,7 +85,11 @@ public static String[] getPermissions(@Permission final String permission) {
7985 case MICROPHONE :
8086 return GROUP_MICROPHONE ;
8187 case PHONE :
82- return GROUP_PHONE ;
88+ if (Build .VERSION .SDK_INT < Build .VERSION_CODES .O ) {
89+ return GROUP_PHONE_BELOW_O ;
90+ } else {
91+ return GROUP_PHONE ;
92+ }
8393 case SENSORS :
8494 return GROUP_SENSORS ;
8595 case SMS :
0 commit comments