Android App清除数据的方案

Android App清除数据的方案,第1张

前言

最近MIUI13上出了个未经应用商店安装,算是未知来源。AndroidID,通知,网络权限没授权则默认关闭。

安装app时允许虚拟身份ID:

允许允许虚拟身份ID前获取一次AndroidId:
attachBaseContext获取AndroidId, 此时还没有点允许虚拟身份ID,此时获取的AndroidId:0000000000000000,允许虚拟身份后后再获取也是不会变化的,需要杀进程重新打开app才能获取正确的AndroidId。

允许虚拟身份ID后获取AndroidID:
点允许虚拟身份ID后,再获取AndroidID正常,不需要杀进程重启app进程。

安装app时不允许虚拟身份ID:

获取AndroidID返回0000000000000000系统设置->app权限:允许手机信息 后,获取AndroidID依然返回 0000000000000000

一旦用户点击确认,该权限d框就不再d出。

有一个业务场景需要有该d框d出的恢复机制,可以通过清除应用数据达到目的。

解决方法一:

在app里直接调用系统接口clearApplicationUserData进行清除

        ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        if (am != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            boolean ret = am.clearApplicationUserData();
            Log.w(TAG, "Clear application user data result:" + ret);
        }
解决方法二:

在app里直接执行命令pm clear packageName

    public static Process clearAppUserData(String packageName) {
        Process p = execRuntimeProcess("pm clear " + packageName);
        return p;
    }

    public static Process execRuntimeProcess(String commond) {
        Process p = null;
        try {
            p = Runtime.getRuntime().exec(commond);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return p;
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/992114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存