@@ -117,6 +117,11 @@ public static void grantPermission(Context context, EPermissionType permissionTy
117117 executeAccessMgrPermissionCommand (context , EPermissionAccessAction .GRANT_PERMISSION , permissionType , callbackInterface );
118118 }
119119
120+ public static void grantPermissionWithClassName (Context context , EPermissionType permissionType , String applicationClassName , IResultCallbacks callbacksInterface )
121+ {
122+ executeAccessMgrPermissionCommand (context , EPermissionAccessAction .GRANT_PERMISSION , permissionType , applicationClassName , callbacksInterface );
123+ }
124+
120125 public static void denyPermission (Context context , EPermissionType permissionType , IResultCallbacks callbackInterface )
121126 {
122127 executeAccessMgrPermissionCommand (context , EPermissionAccessAction .DENY_PERMISSION , permissionType , callbackInterface );
@@ -152,7 +157,19 @@ public void onDebugStatus(String message) {
152157 });
153158 }
154159
155- private static void executeAccessMgrPermissionCommand (Context context , EPermissionAccessAction permissionAccessAction , EPermissionType permissionType , IResultCallbacks callbackInterface ) {
160+ private static void executeAccessMgrPermissionCommand (Context context , EPermissionAccessAction permissionAccessAction , EPermissionType permissionType , IResultCallbacks callbackInterface )
161+ {
162+ if (permissionType == EPermissionType .ACCESSIBILITY_SERVICE )
163+ {
164+ if (callbackInterface != null ) {
165+ callbackInterface .onError ("Error : ACCESSIBILITY SERVICE permission needs a applicationClassName, use the grantPermissionWithClassName instead." ,"" );
166+ return ;
167+ }
168+ }
169+ executeAccessMgrPermissionCommand (context , permissionAccessAction , permissionType , null , callbackInterface );
170+ }
171+
172+ private static void executeAccessMgrPermissionCommand (Context context , EPermissionAccessAction permissionAccessAction , EPermissionType permissionType , String applicationClassName , IResultCallbacks callbackInterface ) {
156173 String profileName = "AccessMgr-1" ;
157174 String profileData = "" ;
158175 try {
@@ -189,16 +206,17 @@ private static void executeAccessMgrPermissionCommand(Context context, EPermissi
189206 String encoded = Base64 .getEncoder ().encodeToString (rawCert );
190207
191208 profileData =
192- "<?xml version=\" 1.0\" encoding=\" utf-8\" ?>" +
193- "<characteristic type=\" Profile\" >" +
194- "<parm name=\" ProfileName\" value=\" " + profileName + "\" />" +
195- "<characteristic type=\" AccessMgr\" version=\" 11.3\" >" +
196- "<parm name=\" PermissionAccessAction\" value=\" " + permissionAccessAction .toString () + "\" />" +
197- "<parm name=\" PermissionAccessPackageName\" value=\" " + context .getPackageName () + "\" />" +
209+ "<?xml version=\" 1.0\" encoding=\" utf-8\" ?>\n " +
210+ "<characteristic type=\" Profile\" >\n " +
211+ "<parm name=\" ProfileName\" value=\" " + profileName + "\" />\n " +
212+ "<characteristic type=\" AccessMgr\" version=\" 11.3\" >\n " +
213+ "<parm name=\" PermissionAccessAction\" value=\" " + permissionAccessAction .toString () + "\" />\n " +
214+ "<parm name=\" PermissionAccessPackageName\" value=\" " + context .getPackageName () + "\" />\n " +
215+ ((applicationClassName != null && applicationClassName .isEmpty () == false ) ? "<parm name=\" ApplicationClassName\" value=\" " + applicationClassName +"\" />" : "" ) +
198216 "<parm name=\" PermissionAccessPermissionName\" value=\" " + permissionType .toString () + "\" />\n " +
199- "<parm name=\" PermissionAccessSignature\" value=\" " + encoded + "\" />" +
200- "</characteristic>" +
201- "</characteristic>" ;
217+ "<parm name=\" PermissionAccessSignature\" value=\" " + encoded + "\" />\n " +
218+ "</characteristic>\n " +
219+ "</characteristic>\n " ;
202220 ProfileManagerCommand profileManagerCommand = new ProfileManagerCommand (context );
203221 profileManagerCommand .execute (profileData , profileName , callbackInterface );
204222 //}
0 commit comments