如何以编程方式设置事件注入器的权限?我试图通过模拟“发送”键自动接听来电。在模拟器上,事件注入器工作正常,但是,当我在实际设备上运行代码时,它无法工作。
答案 0 :(得分:4)
RIM API不允许以编程方式设置权限。您只能request for permissions,显示权限请求屏幕,用户必须手动设置权限。
没有解决方法,这是一项安全措施。否则,恶意软件可能会设置任意权限并执行任何操作。
答案 1 :(得分:1)
这样的内容将检查权限(如果您的应用已经运行,并且用户已经接受了权限),或者请求它们(如果尚未接受)。根据您的应用的其他功能,您可能只需要PERMISSION_INPUT_SIMULATION
。我的下面的代码也显示了一些其他权限。
/** @return true if the user has accepted permissions requests */
public boolean hasPermissions() {
ApplicationPermissionsManager apm = ApplicationPermissionsManager.getInstance();
ApplicationPermissions original = apm.getApplicationPermissions();
if ((original.getPermission(ApplicationPermissions.PERMISSION_INPUT_SIMULATION) == ApplicationPermissions.VALUE_ALLOW)
&& (original.getPermission(ApplicationPermissions.PERMISSION_DEVICE_SETTINGS) == ApplicationPermissions.VALUE_ALLOW)
&& (original.getPermission(ApplicationPermissions.PERMISSION_CROSS_APPLICATION_COMMUNICATION) == ApplicationPermissions.VALUE_ALLOW)
&& (original.getPermission(ApplicationPermissions.PERMISSION_INTERNET) == ApplicationPermissions.VALUE_ALLOW)
&& (original.getPermission(ApplicationPermissions.PERMISSION_SERVER_NETWORK) == ApplicationPermissions.VALUE_ALLOW))
{
return true;
} else {
return false;
}
}
/** @return true if the user has accepted / granted permissions */
public boolean checkPermissions() {
if (!hasPermissions()) {
ApplicationPermissions permRequest = new ApplicationPermissions();
permRequest.addPermission(ApplicationPermissions.PERMISSION_INPUT_SIMULATION);
permRequest.addPermission(ApplicationPermissions.PERMISSION_DEVICE_SETTINGS);
permRequest.addPermission(ApplicationPermissions.PERMISSION_CROSS_APPLICATION_COMMUNICATION);
permRequest.addPermission(ApplicationPermissions.PERMISSION_INTERNET);
permRequest.addPermission(ApplicationPermissions.PERMISSION_SERVER_NETWORK);
return ApplicationPermissionsManager.getInstance().invokePermissionsRequest(permRequest);
} else {
return true;
}
}