我正在开发一个应用程序,我必须在其中限制用户个人共享 apk。人们可以下载它,但不应允许通过蓝牙等个人共享应用程序 (apk)。
我搜索并阅读了很多有关同一问题的信息,但没有找到完整的答案。我已经尝试了以下。
我从上面了解到,执行此操作的简单方法是在安装应用程序后从用户设备中删除 apk 文件。 (我也知道用户可以通过 root 访问再次生成此 apk,但这很好,因为至少我可以限制很多但不是全部)。
现在我已经尝试过,我正在注册一个广播接收器,并且在我的 onReceive()
方法中我有以下内容,
PackageManager pm = getPackageManager();
for (ApplicationInfo app : pm.getInstalledApplications(0)) {
if (myPackage.equalsIgnoreCase(app.packageName)) {
apkPath = app.sourceDir;
break;
}
}
Log.d("Package", myPackage + " - APK - " + apkPath);
if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard, apkPath);
file.delete();
}
但这没有任何作用,因为我不知道应该使用 IntentFilter 来注册它。
任何人都可以指导我下一步是什么吗?如果我完全走错了路,请帮助我实现上述目标?
任何帮助将不胜感激。 :)
最佳答案
在更高版本的 Android 上,某些(全部?)广播只有在至少手动打开应用一次后才会发送到该应用。这是一项无法规避的安全功能。
关于broadcastreceiver - 应用安装后删除 Apk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23469247/