大家好,我之前的一些问题已被标记下来,所以请保持愉快。
我想知道的是,如果有一些我可以使用的代码告诉我的应用程序的用户安装了apk。然后在我的应用程序中打开它。
我有一个列表视图,列表视图中是可供下载的应用列表。我已经弄清楚如何找出apk是否安装而不是下载。但是我无法确定安装位。
我试过这个
public static boolean isPackageInstalled(Context context, String packageName) {
final PackageManager packageManager = context.getPackageManager();
Intent intent = packageManager.getLaunchIntentForPackage(packageName);
if (intent == null) {
return false;
}
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
然后使用
ispackageinstalled();
但这要求Context和string 所以我尝试将其添加到构造函数
Context shb;
private Static String Showbox = "com.tk.Showbox";
然后尝试了
ispackageinstalled(shb,Showbox);
并且应用程序崩溃大声笑我很明显写错了。如果可能的话,我也希望选择变成红色。但让应用程序打开将是一个很好的帮助欢呼球员
答案 0 :(得分:1)
您需要将实际的Context
传递给该方法。托管Activity
的{{1}}子类是ListView
。将Context
传递到Activity
方法。
答案 1 :(得分:0)
发现这个按照我想要的方式工作
private boolean isCallable(Intent intent) {
if (intent == null) {
return false;
}
List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
然后使用像这样的包详细信息制作一个Intent
Intent AllcastOpen = getPackageManager().getLaunchIntentForPackage("com.koushikdutta.cast");
然后是if语句
if (isCallable(AllcastOpen) == true) {
AllcastInstalled.equals(true);
startActivity(AllcastOpen);
allcastInstalled是一种单独的方法,如果根据
安装/下载,则会更改选择的颜色