“通过 Provider 使用 FreezeYou 进行冻结解冻以及数据查询等操作”的版本间的差异

来自Wiki - Playhi!
跳转至: 导航搜索
如何使用
第9行: 第9行:
 
* 需要在<code>AndroidManifest.xml</code>中声明权限(按需申请)
 
* 需要在<code>AndroidManifest.xml</code>中声明权限(按需申请)
 
** 获取当前 自冻(FreezeYou) 的运行模式:<br><code><uses-permission android:name="cf.playhi.freezeyou.permission.QUERY_STATUS" /></code>
 
** 获取当前 自冻(FreezeYou) 的运行模式:<br><code><uses-permission android:name="cf.playhi.freezeyou.permission.QUERY_STATUS" /></code>
** 获取已冻结应用列表:<br><code><uses-permission android:name="cf.playhi.freezeyou.permission.QUERY_STATUS" /></code>
+
** 获取应用是否被冻结:<br><code><uses-permission android:name="cf.playhi.freezeyou.permission.QUERY_STATUS" /></code>
 
** 进行解冻应用操作:<br><code><uses-permission android:name="cf.playhi.freezeyou.permission.ENABLE_APPLICATIONS" /></code>
 
** 进行解冻应用操作:<br><code><uses-permission android:name="cf.playhi.freezeyou.permission.ENABLE_APPLICATIONS" /></code>
 
** 进行冻结应用操作:<br><code><uses-permission android:name="cf.playhi.freezeyou.permission.DISABLE_APPLICATIONS" /></code>
 
** 进行冻结应用操作:<br><code><uses-permission android:name="cf.playhi.freezeyou.permission.DISABLE_APPLICATIONS" /></code>
 +
=== 代码示例 ===
 +
* 获取当前运行模式:<br>
 +
<pre>
 +
    Bundle resultBundle = getContentResolver().call(
 +
        Uri.parse("content://cf.playhi.freezeyou.export.QUERY"), "QUERY_MODE", null, new Bundle());
 +
    String currentMode = resultBundle.getString("currentMode", "Failed");
 +
</pre>
 +
* 获取应用是否被冻结:<br>
 +
<pre>
 +
    Bundle willBeSend = new Bundle();
 +
    willBeSend.putString("packageName", packageName);
 +
    Bundle resultBundle = getContentResolver().call(
 +
        Uri.parse("content://cf.playhi.freezeyou.export.QUERY"), "QUERY_FREEZE_STATUS", null, willBeSend);
 +
    int resultStatusCode = resultBundle.getInt("status", 123456);
 +
</pre>
 
=== 开发实例 ===
 
=== 开发实例 ===
 
* [https://github.com/Playhi/FreezeYouApiTest FreezeYouApiTest]
 
* [https://github.com/Playhi/FreezeYouApiTest FreezeYouApiTest]

2019年8月10日 (六) 15:32的版本

版本要求

  • 自冻(FreezeYou) 版本不小于 9.0

授权范围

  • 获取当前自冻(FreezeYou)的运行模式、获取已冻结应用列表、进行冻结应用操作、进行解冻应用操作。

如何使用

声明权限

  • 需要在AndroidManifest.xml中声明权限(按需申请)
    • 获取当前 自冻(FreezeYou) 的运行模式:
      <uses-permission android:name="cf.playhi.freezeyou.permission.QUERY_STATUS" />
    • 获取应用是否被冻结:
      <uses-permission android:name="cf.playhi.freezeyou.permission.QUERY_STATUS" />
    • 进行解冻应用操作:
      <uses-permission android:name="cf.playhi.freezeyou.permission.ENABLE_APPLICATIONS" />
    • 进行冻结应用操作:
      <uses-permission android:name="cf.playhi.freezeyou.permission.DISABLE_APPLICATIONS" />

代码示例

  • 获取当前运行模式:
    Bundle resultBundle = getContentResolver().call(
        Uri.parse("content://cf.playhi.freezeyou.export.QUERY"), "QUERY_MODE", null, new Bundle());
    String currentMode = resultBundle.getString("currentMode", "Failed");
  • 获取应用是否被冻结:
    Bundle willBeSend = new Bundle();
    willBeSend.putString("packageName", packageName);
    Bundle resultBundle = getContentResolver().call(
         Uri.parse("content://cf.playhi.freezeyou.export.QUERY"), "QUERY_FREEZE_STATUS", null, willBeSend);
    int resultStatusCode = resultBundle.getInt("status", 123456);

开发实例

常见问题

SecurityException

  • 是否已经在 Manifest 中声明了权限呢(冻结\解冻应用还需要类似请求敏感权限一样进行requestPermissions

目前局限

  • 需要在安装FreezeYou后再安装或更新(覆盖安装)使用相关权限的应用,否则可能会报 Exception (在 Android Google 的文档中有提及需要在请求前安装)