使用Data Ability讀取系統設定項
SystemSettingUtil工具類
public class SystemSettingUtil { private static final int LOG_DOMAIN = 218107648; private static final String TAG = "SystemSettingUtil"; private static final HiLogLabel LOG_LABEL = new HiLogLabel(0, LOG_DOMAIN, TAG); private static final String LOG_FORMAT = "%{public}s"; private static final String GET_GLOBAL = "GET_global"; private static final String GET_SECURE = "GET_secure"; private static final String GET_SYSTEM = "GET_system"; private static final String SETTING_VALUE = "value"; private static final String SYSTEM_SETTING = "dataability:///settings"; public static String getGlobal(String key) { return getSettingValueAsString(key, GET_GLOBAL); } public static String getSecure(String key) { return getSettingValueAsString(key, GET_SECURE); } public static String getSystem(String key) { return getSettingValueAsString(key, GET_SYSTEM); } public static String getSettingValueAsString(String key, String method) { if (TextTool.isNullOrEmpty(key)) { HiLog.warn(LOG_LABEL, LOG_FORMAT, "getSettingValueAsString -> key is null or empty"); return ""; } else if (TextTool.isNullOrEmpty(method)) { HiLog.warn(LOG_LABEL, LOG_FORMAT, "getSettingValueAsString -> method is null or empty"); return ""; } else { try { return DataAbilityHelper.creator(ContextUtil.getHapGlobalContext()).call(Uri.parse(SYSTEM_SETTING), method, key, null).getString(SETTING_VALUE, ""); } catch (IllegalArgumentException | IllegalStateException | DataAbilityRemoteException e) { HiLog.error(LOG_LABEL, LOG_FORMAT, "getSettingValueAsString -> Exception"); return ""; } } } }
ContextUtil工具類
public class ContextUtil { private static Context sHapGlobalContext; public static Context getHapGlobalContext() { return sHapGlobalContext; } public static void setHapGlobalContext(Context context) { if (context != null) { sHapGlobalContext = context; } } }
使用方法:
-
在MyApplication onInitialize呼叫ContextUtil.setHapGlobalContext(this)設定全域性Context;
-
呼叫SystemSettingUtil.getXXX。
注:key常量可使用hdc shell執行以下命令獲取。
settings list system
settings list secure
settings list global
程式碼裡怎麼區分使用者是否調整了系統字型大小設定裡【顯示大小】?
https://developer.huawei.com/consumer/cn/forum/topic/0202539565144520016?fid=23
(出處: 論壇首頁)
解決方案:
private static final String INIT_DPI = "init_dpi"; private static final String DISPLAY_DENSITY_FORCED = "display_density_forced"; SystemSettingUtil.getSecure(INIT_DPI); SystemSettingUtil.getSecure(DISPLAY_DENSITY_FORCED);
display_density_forced為空即顯示大小為預設,display_density_forced<init_dpi顯示大小為小,display_density_forced>init_dpi顯示大小為大,未修改過顯示大小時兩項都為空。
原文連結: https://developer.huawei.com/consumer/cn/forum/topic/0202553488903740688?fid=0101303901040230869
原作者:π
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2773246/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 讀取麒麟系統的各項版本資訊
- spring-data-jpa使用快取的注意事項Spring快取
- Swoft 配置的設定和讀取
- 小心設定啟動項保護Windows系統安全Windows
- win10系統下怎麼新增“混合現實”設定項_win10系統新增“混合現實”設定項的方法Win10
- win10系統下如何使用自帶輸入法設定英文為預設項Win10
- 影片直播系統原始碼,例項原始碼系列-設定系統時間原始碼
- Mac 使用終端命令設定系統代理Mac
- 帶讀 |《Designing Data-Intensive Applications》(中文:資料密集型系統設計)APP
- 獲取系統字型,獲取系統預設字型
- win10開機啟動項怎麼設定_如何設定win10系統開機啟動項Win10
- Laravel setting 設定 / 系統設定 / 網站設定Laravel網站
- ABL讀取XBL設定的標誌位
- Java 獲取系統各項引數Java
- 直播系統程式碼,Android獲取、設定鎖屏密碼Android密碼
- Win10系統設定開機啟動項的2個方法Win10
- Only Switch Mac可以幫你一鍵切換系統各項設定Mac
- 如何在 Spartacus 使用 UserAccountFacade 在語言設定更改後重新讀取使用者資料
- Win10 1903系統如何設定工作管理員預設啟動選項卡Win10
- 讀取和設定 Ubuntu 環境變數(很全面)Ubuntu變數
- flink定時讀取mysqlMySql
- Windows系統常用系統引數設定文件Windows
- linux系統時間設定Linux
- Linux設定系統時間Linux
- windows10系統設定快速啟動U盤啟動項的方法Windows
- Win10 1909系統怎麼新增/刪除混合現實設定項Win10
- 直播系統原始碼,讀取多行文字、讀取檔案分割多行文字原始碼
- 重灌系統感悟之設定系統還原點
- windows10系統設定快速啟動隨身碟啟動項的方法Windows
- win10系統開機啟動項設定無法更改怎麼回事Win10
- ASP.NET Core - 配置系統之配置讀取ASP.NET
- 使用Data Lake Analytics讀/寫RDS資料
- 對不同角色使用者設定不同的系統首頁
- Data Lake Analytics IP白名單設定攻略
- OTA升級更新系統預設設定
- 在 Fedora 系統上設定 zsh
- 統一列寬並設定顯示選項
- 雲伺服器Linux系統設定時間同步設定伺服器Linux