2012-08-24 74 views
0

如何以事件注入器的編程方式設置權限?我試圖通過模擬'發送'鍵來自動接聽來電。在模擬器上,事件注入器完美工作,但是,當我在實際設備上運行代碼時,它無法工作。以編程方式爲事件注入器設置權限

+1

你是不是想以編程** **請求的權限,或** **設置權限? – Nate

+0

@Nate要設置權限,但如果沒有辦法做到這一點,那麼我想知道如何以編程方式請求它們。 – BirthOfTragedy

+0

下面更新的答案(附代碼)顯示如何申請此類權限。 – Nate

回答

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; 
     } 
    } 
4

RIM API不允許以編程方式設置權限。您只能輸入request for permissions,顯示權限請求屏幕,用戶必須手動設置權限。

有沒有解決方法,這是一個安全措施。否則,惡意軟件可能會設置任意權限並執行任何想要的操作。

+0

那麼您如何請求權限以便獲得權限請求屏幕? – BirthOfTragedy

+0

我的答案中有鏈接,它指向請求權限的方法。 – 2012-08-24 17:38:29

相關問題