2016-12-22 28 views
1

GPS據API documentation設備所有者的應用程序可以修改一些「安全設置」,特地LOCATION_MODE通過以下調用:啓用設備所有者應用

devicePolicyManager.setSecureSetting (ComponentName admin, 
      String setting, 
      String value) 

通過配置文件或設備所有者調用,以更新Settings.Secure設置 [...]

的裝置擁有者可以附加地更新以下設置: LOCATION_MODE

根據我的理解,LOCATION_MODE的值是一個int(resp。 0禁用位置,1僅用於GPS,2用於省電模式,3用於高精度)。

我的問題是String value參數的類型。 LOCATION_MODE需要一個int,但API需要一個String。

我錯過了什麼嗎?

+2

LOCATION_MODE documentation => ... bla ... bla ... * putInt(ContentResolver,String,int)* click ... *用於將單個設置值更新爲整數的便捷函數* ... *請注意,內部設置值始終以字符串形式存儲* ... *此功能**將*** ... ***轉換爲字符串*** – Selvin

回答

1

解決方案只是使用int值的字符串表示形式。

例如啓用 「只有GPS」 定位方式:

DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); 
if (dpm.isDeviceOwnerApp(context.getPackageName())) { 
    ComponentName componentName = new ComponentName(context, MyDeviceAdmin.class); 
    dpm.setSecureSetting(componentName, Settings.Secure.LOCATION_MODE, String.valueOf(Settings.Secure.LOCATION_MODE_SENSORS_ONLY)); 
} 

[感謝@Selvin評論]

它是有意義的,因爲挖掘到的javadoc LOCATION_MODE時,你可以閱讀:

請注意,內部設置值始終存儲爲字符串[...]

相關問題