使用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用data pump前的設定
- ATC系統區外兩項告警設定
- Win8系統設定休眠選項功能
- Swoft 配置的設定和讀取
- spring-data-jpa使用快取的注意事項Spring快取
- 小心設定啟動項保護Windows系統安全Windows
- win10系統下怎麼新增“混合現實”設定項_win10系統新增“混合現實”設定項的方法Win10
- javascript 對cookie的讀取和設定JavaScriptCookie
- 影片直播系統原始碼,例項原始碼系列-設定系統時間原始碼
- win10系統下如何使用自帶輸入法設定英文為預設項Win10
- Mac 使用終端命令設定系統代理Mac
- Java 獲取系統各項引數Java
- win10開機啟動項怎麼設定_如何設定win10系統開機啟動項Win10
- Laravel setting 設定 / 系統設定 / 網站設定Laravel網站
- javascript設定或者獲取cookie程式碼例項JavaScriptCookie
- Django 使用者認證系統:基本設定Django
- javascript設定和獲取cookie值程式碼例項JavaScriptCookie
- 直播系統程式碼,Android獲取、設定鎖屏密碼Android密碼
- 如何使用Win8系統設定共享檔案
- iOS中 讀取相簿,呼叫系統相機iOS
- Windows系統常用系統引數設定文件Windows
- Win10系統設定開機啟動項的2個方法Win10
- Only Switch Mac可以幫你一鍵切換系統各項設定Mac
- Win10系統怎麼顯示隱藏的Samples設定項Win10
- SAP系統引數設定
- SAP 系統引數設定
- Redhat設定系統時區Redhat
- 直播系統原始碼,讀取多行文字、讀取檔案分割多行文字原始碼
- 帶讀 |《Designing Data-Intensive Applications》(中文:資料密集型系統設計)APP
- Windows10系統怎麼設定edge瀏覽器朗讀音量Windows瀏覽器
- js設定、讀取或者刪除cookie簡單介紹JSCookie
- flink定時讀取mysqlMySql
- ASP.NET Core - 配置系統之配置讀取ASP.NET
- 重灌系統感悟之設定系統還原點
- windows10系統設定快速啟動U盤啟動項的方法Windows
- 使用js實現儲存讀取js字串程式碼例項JS字串
- 如何在 Spartacus 使用 UserAccountFacade 在語言設定更改後重新讀取使用者資料
- Win10 1903系統如何設定工作管理員預設啟動選項卡Win10