2 * Copyright 2008 ZXing authors
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
17 package com.google.zxing.client.rim;
\r
19 import com.google.zxing.client.rim.util.Log;
\r
20 import net.rim.device.api.applicationcontrol.ApplicationPermissions;
\r
21 import net.rim.device.api.applicationcontrol.ApplicationPermissionsManager;
\r
24 * Requests the necessary permissions for the application.
\r
26 * This code was contributed by LifeMarks.
\r
28 * @author Matt York (matt@lifemarks.mobi)
\r
30 final class AppPermissionsManager {
\r
32 private static final ApplicationPermissionsManager apm = ApplicationPermissionsManager.getInstance();
\r
34 private AppPermissionsManager() {
\r
38 * Requests the required application permissions. Currently the required permissions are
\r
39 * event injection (sending system level key strokes to other running applications) and
\r
40 * accessing files (accessing the file when a qrcode image is saved to the file system).
\r
42 static void setPermissions() {
\r
43 setPermission(ApplicationPermissions.PERMISSION_EVENT_INJECTOR);
\r
44 setPermission(ApplicationPermissions.PERMISSION_FILE_API);
\r
47 private static boolean setPermission(int permission) {
\r
48 boolean updatedPermissions = false;
\r
49 ApplicationPermissions ap = apm.getApplicationPermissions();
\r
50 if (ap.containsPermissionKey(permission)) {
\r
51 int eventInjectorPermission = ap.getPermission(permission);
\r
52 Log.info("permission (" + permission + "): " + eventInjectorPermission);
\r
53 if (eventInjectorPermission != ApplicationPermissions.VALUE_ALLOW) {
\r
54 Log.info("Setting permission to VALUE_ALLOW.");
\r
55 ap.addPermission(permission);
\r
56 updatedPermissions = apm.invokePermissionsRequest(ap);
\r
59 Log.info("Setting permission (" + permission + ") to VALUE_ALLOW.");
\r
60 ap.addPermission(permission);
\r
61 updatedPermissions = apm.invokePermissionsRequest(ap);
\r
63 Log.info("updatedPermissions: " + updatedPermissions);
\r
64 return updatedPermissions;
\r