【发布时间】:2014-05-05 09:36:10
【问题描述】:
我正在开发一个应用程序,我必须在其中限制用户个人共享 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 来注册它。
谁能指导我下一步是什么?如果我完全在错误的土地上,那么请帮助我实现上述目标?
任何帮助将不胜感激。 :)
【问题讨论】:
-
the IntentFilter I should use和android.intent.action.PACKAGE_ADDED。缺少什么? -
我已经添加了这个,并认为这会起作用,但它没有。如果有帮助,我会放上我的整个代码。
-
输入完整的清单(使用广播接收器注册),并添加更多关于接收 PACKAGE_ADDED 广播的上下文(完整的 onReceive 方法)
-
检查这个link..可能对你有帮助..
标签: broadcastreceiver apk android-broadcast android