我有一个应用程序 A 启动了安装应用程序 B 的意图(它存在于应用程序 A 的数据文件夹中)。
安装应用程序 B 后,ASTRO 等文件管理器可以备份应用程序 B 的 apk 文件。
所以我想阻止用户手动安装它(比如如果他点击应用程序 B 的备份 apk 文件,它不应该安装)。
有没有办法禁用手动安装...?
我有一个应用程序 A 启动了安装应用程序 B 的意图(它存在于应用程序 A 的数据文件夹中)。
安装应用程序 B 后,ASTRO 等文件管理器可以备份应用程序 B 的 apk 文件。
所以我想阻止用户手动安装它(比如如果他点击应用程序 B 的备份 apk 文件,它不应该安装)。
有没有办法禁用手动安装...?
但是有两种方法可以监控app。一种是,可以使用File Observer
监控应用程序。每当应用程序被用作备份时,都会采取措施防止它发生。另一种方法是
例如:如果它存储在 sdcard\am\ 中,请像这样使用。
File f=new File("\mnt\sdcard\am\abc.apk");// file location of your app
{
if(f.exists)
{
f.delete();
}
}
对于 File Observer,看看这个。它可能会对你有所帮助。
http://developer.android.com/reference/android/os/FileObserver.html
你能找到备份的位置并删除apk吗?
如果文件管理器可以使用 APk,那么它可以打开它并安装它,我不知道有什么方法可以阻止它,因为它超出了您的应用程序范围。
不确定它是否可行,但我会通过让应用程序A
吐出必须在安装应用程序时手动输入的代码(如两步验证)来解决这个问题B
,然后在服务器端验证它。因此,像您提到的流氓安装将变得毫无用处。也许您可以向用户弹出一个错误,通知他们这一点。
这在 AOSP Android 上是不可能的。
从未知来源安装选项是Settings.Global
(以前在Settings.Secure
)中的设置,无法由第三方应用程序控制。
但是,如果您愿意为要使用它的每台设备修改和编译 Android 本身,就可以实现这一点,就像 AT&T 在他们的一些设备上所做的那样。
您可以做的最好的事情是尝试找到备份文件并在您有权访问该部分存储时将其删除。