2016-02-28 67 views
0

我的項目需要輔助功能,我需要以編程方式啓用。我正在使用下面的代碼片段。輔助功能啓用在Android果凍豆中不起作用

Settings.Secure.putString(context.getContentResolver(), 
       Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, 
      appInfo); 

     Settings.Secure.putString(context.getContentResolver(), 
       Settings.Secure.ACCESSIBILITY_ENABLED, 
       "1"); 

     Settings.Secure.putString(context.getContentResolver(), 
            Settings.Secure.TOUCH_EXPLORATION_ENABLED, 
            "1"); 

Settings.Secure.putString(context.getContentResolver(), 
             "touch_exploration_granted_accessibility_services", 
            appInfo); 

但它不工作在5.1操作系統可用的Android設備中。 在較低版本中按預期工作。 4.0後api有什麼變化?

+0

你正在開發一個應用程序或服務? – ChrisCM

+0

我正在開發應用程序。 –

+0

你不能這樣做。您應該考慮開發無障礙服務。這使您能夠正確訪問這些權限。 – ChrisCM

回答

0

該問題是由於回聲應用程序包的名稱。在一些設備中,我們需要提供回覆apk包的名稱。所以這解決了我的問題

0

只有擁有WRITE_SECURE_SETTINGS權限的應用才能修改Settings.Secure值。 WRITE_SECURE_SETTINGS是一個signature級別的權限,這是普通的Android SDK應用程序無法保存的權限。

歡迎您創建自己的Android定製版本,將其轉換爲自定義ROM,然後在Android設備上安裝該ROM。你的應用程序,WRITE_SECURE_SETTINGS,可以是該ROM的一部分。

+0

是的,我擁有所有權限,我的意思是說我們的應用程序具有路線權限。還有一個在ICS下工作得很好。 但在具有5.1的設備失敗。 –

+0

@ashokreddy:「是的,我擁有所有權限」 - 同樣,除非您的應用使用簽署設備固件的相同簽名密鑰進行簽名,否則您無法保留「WRITE_SECURE_SETTINGS」。 – CommonsWare

+0

是的,即使簽署建立也不工作,因爲我告訴它工作正常ICS。 –