{"id":15986,"date":"2026-01-16T08:32:02","date_gmt":"2026-01-16T00:32:02","guid":{"rendered":"http:\/\/xinyiworld.top\/wordpress_it\/?p=15986"},"modified":"2026-01-16T20:53:25","modified_gmt":"2026-01-16T12:53:25","slug":"%e9%85%b7%e6%af%94%e9%ad%94%e6%96%b9%e5%b9%b3%e6%9d%bf%e6%97%a0%e6%b3%95%e7%94%b3%e8%af%b7package_usage_stats%e6%9d%83%e9%99%90%e7%9a%84%e9%97%ae%e9%a2%98","status":"publish","type":"post","link":"http:\/\/xinyiworld.top\/wordpress_it\/?p=15986","title":{"rendered":"\u9177\u6bd4\u9b54\u65b9\u5e73\u677f\u65e0\u6cd5\u7533\u8bf7PACKAGE_USAGE_STATS\u6743\u9650\u7684\u95ee\u9898"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_16 counter-hierarchy counter-decimal ez-toc-grey\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\">\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" style=\"display: none;\"><i class=\"ez-toc-glyphicon ez-toc-icon-toggle\"><\/i><\/a><\/span><\/div>\n<nav><ul class=\"ez-toc-list ez-toc-list-level-1\"><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-1\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15986\/#%E4%B8%80%E3%80%81%E7%8E%B0%E8%B1%A1\" title=\"\u4e00\u3001\u73b0\u8c61\">\u4e00\u3001\u73b0\u8c61<\/a><ul class=\"ez-toc-list-level-2\"><li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15986\/#%E9%97%AE%E9%A2%98\" title=\"\u95ee\u9898\">\u95ee\u9898<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-3\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15986\/#%E4%BB%A3%E7%A0%81\" title=\"\u4ee3\u7801\">\u4ee3\u7801<\/a><\/li><\/ul><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-4\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15986\/#%E4%BA%8C%E3%80%81%E6%89%BE%E9%A1%B5%E9%9D%A2\" title=\"\u4e8c\u3001\u627e\u9875\u9762\">\u4e8c\u3001\u627e\u9875\u9762<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-1\"><a class=\"ez-toc-link ez-toc-heading-5\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15986\/#%E4%B8%89%E3%80%81%E6%9C%80%E7%BB%88%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95\" title=\"\u4e09\u3001\u6700\u7ec8\u89e3\u51b3\u529e\u6cd5\">\u4e09\u3001\u6700\u7ec8\u89e3\u51b3\u529e\u6cd5<\/a><ul class=\"ez-toc-list-level-2\"><li class=\"ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-6\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15986\/#%E5%88%86%E6%9E%90%E6%BA%90%E7%A0%81%EF%BC%9A\" title=\"\u5206\u6790\u6e90\u7801\uff1a\">\u5206\u6790\u6e90\u7801\uff1a<\/a><\/li><li class=\"ez-toc-page-1 ez-toc-heading-level-2\"><a class=\"ez-toc-link ez-toc-heading-7\" href=\"http:\/\/xinyiworld.top\/wordpress_it\/?p=15986\/#%E8%8F%9C%E5%8D%95%E7%9A%84%E7%82%B9%E5%87%BB%E4%BA%8B%E4%BB%B6\" title=\"\u83dc\u5355\u7684\u70b9\u51fb\u4e8b\u4ef6\">\u83dc\u5355\u7684\u70b9\u51fb\u4e8b\u4ef6<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E4%B8%80%E3%80%81%E7%8E%B0%E8%B1%A1\"><\/span>\u4e00\u3001\u73b0\u8c61<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"%E9%97%AE%E9%A2%98\"><\/span>\u95ee\u9898<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>1\uff09\u901a\u8fc7adb\u5b89\u88c5\u7684\u5e94\u7528\u53ef\u4ee5\u6b63\u5e38\u7533\u8bf7\u4e0b\u9762\u7684\u6743\u9650\uff0c\u901a\u8fc7\u62f7\u8d1dapk\u5230\u5e73\u677f\u91cc\u624b\u52a8\u5b89\u88c5\uff08\u901a\u8fc7\u6587\u4ef6\u6781\u5ba2apk\uff09\u5219\u65e0\u6cd5\u7533\u8bf7\u6743\u9650\u3002<\/p>\n<p>2\uff09android14\u4e0a\u80fd\u6b63\u5e38\u7533\u8bf7\u6743\u9650<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E4%BB%A3%E7%A0%81\"><\/span>\u4ee3\u7801<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u901a\u8fc7\u4e0b\u9762\u7684intent\u8c03\u7528\u8bbe\u7f6e\u7533\u8bf7\u6743\u9650<\/p>\n<pre><code>val intent = Intent(\n    Settings.ACTION_USAGE_ACCESS_SETTINGS,\n    Uri.parse(&quot;package:$packageName&quot;)\n)<\/code><\/pre>\n<p>\u5728\u9177\u6bd4\u9b54\u65b9\u5e73\u677f\u4f1a\u8c03\u8d77\u9875\u9762\uff1a<br \/>\n<img src=\"http:\/\/xinyiworld.top\/wordpress_it\/wp-content\/uploads\/2026\/01\/\u5fae\u4fe1\u56fe\u7247_20260116083750_118_102-1.jpg\" alt=\"\" \/><\/p>\n<p>toggle buttton\u672c\u8eab\u662f\u4e0d\u80fd\u70b9\u51fb\u7684\uff0c\u4f46\u662f\u6574\u4e2aitem\u53ef\u4ee5\u70b9\u51fb\uff0c\u5e76\u4e14\u4f1a\u5f39\u51fa\uff1a<br \/>\n<img src=\"http:\/\/xinyiworld.top\/wordpress_it\/wp-content\/uploads\/2026\/01\/\u5fae\u4fe1\u56fe\u7247_20260116083806_119_102.jpg\" alt=\"\" \/><\/p>\n<h1><span class=\"ez-toc-section\" id=\"%E4%BA%8C%E3%80%81%E6%89%BE%E9%A1%B5%E9%9D%A2\"><\/span>\u4e8c\u3001\u627e\u9875\u9762<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>\u5148\u5173\u95ed\u540e\u6253\u5f00\u6743\u9650\u7533\u8bf7\u9875\u9762\uff0c\u901a\u8fc7<code>dumpsys window | grep &quot;windows #&quot;<\/code>\u5bf9\u6bd4\u53ef\u77e5\u8fd9\u4e2a\u9875\u9762\u4e3a<code>com.android.settings\/com.android.settings.Settings$AppUsageAccessSettingsActivity<\/code>\uff0c\u771f\u6b63\u7684\u9875\u9762\u4e3aFragment\u7c7b<code>com.android.settings.applications.UsageAccessDetails<\/code>,\u5176refreshUI\u65b9\u6cd5\u91cc\u5c06\u8fd9\u4e2a\u6743\u9650\u5f00\u5173\u7f6e\u7070\u4e0d\u53ef\u7528\u7684\uff0c\u5173\u8054\u7684\u7c7b\u4e3a<code>packages\/apps\/Settings\/src\/com\/android\/settings\/applications\/AppStateAppOpsBridge.java<\/code><\/p>\n<h1><span class=\"ez-toc-section\" id=\"%E4%B8%89%E3%80%81%E6%9C%80%E7%BB%88%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95\"><\/span>\u4e09\u3001\u6700\u7ec8\u89e3\u51b3\u529e\u6cd5<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>\u6700\u7ec8\u6ca1\u6709\u6539rom\u4ee3\u7801\uff0c\u800c\u662f\u901a\u8fc7\u201c<strong>\u8bbe\u7f6e-\u5e94\u7528-\u53f3\u4e0a\u89d2-\u5141\u8bb8\u53d7\u9650\u5236\u7684\u8bbe\u7f6e<\/strong>\u201d\uff0c\u5373\u53ef\u6b63\u5e38\u7533\u8bf7\u3002<br \/>\n<img src=\"http:\/\/xinyiworld.top\/wordpress_it\/wp-content\/uploads\/2026\/01\/\u5141\u8bb8\u53d7\u9650\u5236\u7684\u8bbe\u7f6e.jpg\" alt=\"\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E5%88%86%E6%9E%90%E6%BA%90%E7%A0%81%EF%BC%9A\"><\/span>\u5206\u6790\u6e90\u7801\uff1a<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u901a\u8fc7\u5728<code>packages\/apps\/Settings<\/code>\u76ee\u5f55\u4e2d\u6267\u884c<code>grep -rn &quot;\u5141\u8bb8\u53d7\u9650\u5236\u7684 \u8bbe\u7f6e&quot;<\/code>\u627e\u5230string\u7684\u5b9a\u4e49\u4f4d\u7f6e<br \/>\n<code>res\/values-zh-rCN\/strings.xml:1763:    &lt;string name=&quot;app_restricted_settings_lockscreen_title&quot; msgid=&quot;5993061278264872648&quot;&gt;&quot;\u5141\u8bb8\u53d7\u9650\u5236\u7684\u8bbe\u7f6e&quot;&lt;\/string&gt;<\/code><\/p>\n<p>\u7ee7\u7eed\u68c0\u7d22<br \/>\n<code>grep -nr app_restricted_settings_lockscreen_title<\/code><br \/>\n\u627e\u5230\u4ee3\u7801<br \/>\n<code>src\/com\/android\/settings\/applications\/appinfo\/AppInfoDashboardFragment.java:409:                R.string.app_restricted_settings_lockscreen_title)<\/code><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E8%8F%9C%E5%8D%95%E7%9A%84%E7%82%B9%E5%87%BB%E4%BA%8B%E4%BB%B6\"><\/span>\u83dc\u5355\u7684\u70b9\u51fb\u4e8b\u4ef6<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<pre><code class=\"language-java\"> @Override\n    public boolean onOptionsItemSelected(MenuItem item) {\n        switch (item.getItemId()) {\n            ...\n            case ACCESS_RESTRICTED_SETTINGS:\n                showLockScreen(getContext(), () -&gt; {\n                    if (android.permission.flags.Flags.enhancedConfirmationModeApisEnabled()\n                            &amp;&amp; android.security.Flags.extendEcmToAllSettings()) {\n                        EnhancedConfirmationManager manager = getContext().getSystemService(\n                                EnhancedConfirmationManager.class);\n                        try {\n                            manager.clearRestriction(getPackageName());\n                        } catch (NameNotFoundException e) {\n                            Log.e(TAG, &quot;Exception when retrieving package:&quot; + getPackageName(), e);\n                        }\n                    } else {\n                        final AppOpsManager appOpsManager = getContext().getSystemService(\n                                AppOpsManager.class);\n                        appOpsManager.setMode(AppOpsManager.OP_ACCESS_RESTRICTED_SETTINGS,\n                                getUid(),\n                                getPackageName(),\n                                AppOpsManager.MODE_ALLOWED);\n                    }\n                    getActivity().invalidateOptionsMenu();\n                    final String toastString = getContext().getString(\n                            R.string.toast_allows_restricted_settings_successfully,\n                            mAppEntry.label);\n                    Toast.makeText(getContext(), toastString, Toast.LENGTH_LONG).show();\n                });\n                return true;\n        }\n        return super.onOptionsItemSelected(item);\n    }<\/code><\/pre>\n<button class=\"simplefavorite-button\" data-postid=\"15986\" data-siteid=\"1\" data-groupid=\"1\" data-favoritecount=\"0\" style=\"\">\u6536\u85cf <i class=\"sf-icon-star-empty\"><\/i><\/button>","protected":false},"excerpt":{"rendered":"<p>\u76ee\u5f55 \u4e00\u3001\u73b0\u8c61\u95ee\u9898\u4ee3\u7801\u4e8c\u3001\u627e\u9875\u9762\u4e09\u3001\u6700\u7ec8\u89e3\u51b3\u529e\u6cd5\u5206\u6790\u6e90\u7801\uff1a\u83dc\u5355\u7684\u70b9\u51fb\u4e8b\u4ef6 \u4e00\u3001\u73b0\u8c61 \u95ee\u9898 1\uff09\u901a\u8fc7a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1188],"tags":[],"_links":{"self":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/15986"}],"collection":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15986"}],"version-history":[{"count":13,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/15986\/revisions"}],"predecessor-version":[{"id":16010,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/15986\/revisions\/16010"}],"wp:attachment":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15986"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}