Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Dolphin web浏览器在';正在卸载什么? 背景_Android_Android Intent_Uninstallation - Fatal编程技术网

Android Dolphin web浏览器在';正在卸载什么? 背景

Android Dolphin web浏览器在';正在卸载什么? 背景,android,android-intent,uninstallation,Android,Android Intent,Uninstallation,应用程序允许用户回答为什么决定卸载它们,这可能很有用 问题 似乎应用程序(和“”)以某种方式绕过了它,现在每次卸载应用程序时,它都会显示一个网页(在默认的web浏览器上) 即使使用ADB卸载,也会发生这种情况 作为一个用户,我真的很讨厌它,但它仍然很有趣,因为据我所知,应用程序无法获得卸载自己的意图 问题: 怎么可能呢?他们是如何克服这一点的 这是黑客吗 我猜他们使用的是行动包。 或者是Robin Hood和Frei Tuck方法,在这种方法中,每个人都会收听对方的广播事件。 只是一个猜测,但我

应用程序允许用户回答为什么决定卸载它们,这可能很有用

问题 似乎应用程序(和“”)以某种方式绕过了它,现在每次卸载应用程序时,它都会显示一个网页(在默认的web浏览器上)

即使使用ADB卸载,也会发生这种情况

作为一个用户,我真的很讨厌它,但它仍然很有趣,因为据我所知,应用程序无法获得卸载自己的意图

问题: 怎么可能呢?他们是如何克服这一点的


这是黑客吗

我猜他们使用的是行动包。 或者是Robin Hood和Frei Tuck方法,在这种方法中,每个人都会收听对方的广播事件。
只是一个猜测,但我们将对此进行调查。

这可能是一个选项:

可能应用程序有一个后台服务,在启动自己的onDestroy()回调时检查前台应用程序,如果前台应用程序是android软件包安装程序的卸载活动,它会为网页启动一个新的意图?

请尝试通过ActivityManager获取任务中的顶级活动,并检查是否是卸载活动

核心代码:

ComponentName topActivity = mActivityManager.getRunningTasks(1).get(0).topActivity;
String packageName = topActivity.getPackageName();
String className = topActivity.getClassName();
Log.v(TAG, "packageName" + packageName);
Log.v(TAG, "className" + className);

if ("com.android.packageinstaller".equals(packageName)
    && "com.android.packageinstaller.UninstallerActivity".equals(className)) {
//Do anything you want here
}

dolphin是否使用设备管理员?@PankajKumar否。它没有显示任何特殊对话框。它似乎也没有权限检查正在运行的应用程序,即使它有权限读取日志,它也不会工作,因为我已经在4.1.2设备上测试过它……那么我认为这是一个非常有趣的问题……这可能是我认为不太为人所知的解决方案。实际上,同一个应用程序阻止用户清除应用程序数据并显示自己的屏幕,当我在一个应用程序上工作时,我寻找了那个解决方案并找到了它。所以我认为解决方案必须存在(没有任何黑客)…@NitZRobotKoder不,我还没有找到任何东西。尽管如此,了解他们是如何做到这一点还是很有趣的。不,卸载的应用程序无法接收到这一意图。即使是文档也这么说:“正在安装的软件包没有收到这个目的。”发布后,我发现一个网站说这在4.4上不起作用,但是,有两个程序仍然是合理的?!我以前做过,程序X查找Y,Y查找X,如果其中任何一个停止,另一个会再次启动。应用程序不能(也不应该)强制用户安装另一个应用程序。它可以获得卸载另一个应用程序的事件,但这不是我在这里问的问题。你能给我看看你说的网站吗?嗯。。。与各种网站上的信息相矛盾,让我在Eclipse上做一些测试,然后我会发布结果。我已经尝试过这个意图,如果你问的是-文档是正确的:它不会发送到正在卸载的应用程序…可能是,可能该服务的进程与应用程序的进程不同。应用程序中可以有任何类型的服务,但即使它在单独的进程中运行,也会与应用程序一起卸载。该服务不是一个可以单独安装/卸载的应用程序。我猜ATM应用程序正在被卸载,它的任何服务都将立即被终止。所以它不会以这种方式工作。我认为服务和其他应用程序进程会被回调和截止日期正确地终止,因此,如果应用程序在共享存储(SD卡、闪存等)中写入,文件不会被损坏。可能。有人还说,也许他们使用NDK来克服这个问题。我不认为他们是这样做的,因为即使使用root卸载也会触发NDK。我想知道为什么我现在在安卓5.1上看不到这种行为。难道他们已经停止了这种行为?