【问题标题】:Clearing device owner application data清除设备所有者应用程序数据
【发布时间】:2019-01-02 15:45:44
【问题描述】:

我正在开发device owner app(通过 QR 码安装)在一种情况下,我需要切换用户,这涉及清除与应用程序相关的所有数据,如果应用程序不是“设备所有者”应用程序”我会使用 android

((ActivityManager) m_context.getSystemService(Context.ACTIVITY_SERVICE)).clearApplicationUserData();

但由于它是“设备所有者应用”,我收到以下错误:

java.lang.SecurityException:无法清除受保护包的数据

是否有任何其他 api / 方法来清除设备所有者应用程序的数据?


更新:

感谢@CommonsWare 我给所有数据库打电话context.deleteDatabase("db_name") 并像这样清除了所有SharedPreferences

    SharedPreferences.Editor editor = preferences.edit();
    editor.clear();
    return editor.commit();

这就够了……

【问题讨论】:

  • 为什么不直接删除你的文件呢?它是您的应用程序,您知道它正在创建什么文件以及在哪里创建。
  • 我正在尝试清除我存储在应用程序中的所有 SharedPreferences 但没有清除它们:| (尝试了所有可用/我知道的命令)
  • 如果clear() 不适合您,我猜,请提交错误报告。您可以遍历 SharedPreferences 中的所有值并单独删除它们。在这两种情况下,您都需要commit()apply() Editor 才能使更改生效。
  • @CommonsWare ,感谢您的 cmets,最终我所做的就是我所做的(删除您的文件 + clear & commit ,并且它有效(长话短说为什么我第一次尝试它没有用) ,请将其作为答案发布,以便我接受,谢谢!

标签: android device-owner


【解决方案1】:

您可以通过删除您创建的文件或清除其内容来“艰难地”清除您的数据。

您可能想通过 Android Studio 的设备文件管理器或adb shell 检查您应用的内部存储部分,以查看是否还有其他不是您直接创建的文件需要清除(例如,来自WebView )。

【讨论】:

    【解决方案2】:

    如果您是 Android 9 Pie 设备上的设备所有者(需要 SDK 28),您可以尝试this

    DevicePolicyManager mDPM = (DevicePolicyManager) 
        this.getSystemService(Context.DEVICE_POLICY_SERVICE);
    Componentname mDeviceAdminRcvr = 
        new ComponentName(this, YourDeviceAdminReceiver.class);
    mDPM.clearApplicationUserData(
                mDeviceAdminRcvr, 
                String packageName, 
                Executor executor, 
                DevicePolicyManager.OnClearApplicationUserDataListener listener)
    

    但我认为这是为了清除其他应用程序上的数据。

    您能否解释一下为什么需要在用户切换时从设备所有者应用中清除数据?可能还有另一种方法可以做您需要做的事情,因为无论如何您都会切换到辅助用户。我的实现只需要创建/删除用户(在临时用户之前),然后通过托管配置使用 AE API 及其应用程序配置用户。

    【讨论】:

    • 谢谢,但我已经尝试过那个,但它看起来不适用于应用程序本身,而是适用于其他应用程序,通过告诉“切换用户”我的意思是我的内部应用程序(本地逻辑。 ..) 用户而不是安卓用户
    • dwn 提供非工作解决方案,同时操作要求清除设备所有者应用程序的用户数据
    • 我想要这个实现,你能分享一个完整的例子吗?
    猜你喜欢
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多