Android跳转到应用商店的APP详情页面实现方案
程序员文章站
2023-04-06 23:10:01
android跳转到应用商店的app详情页面。
项目流程:从app内部点击button按钮或者相应的条目,跳转到应用商店的某个app的详情页面。
实现:
第一步:导入获取手机app工具类
pub...
android跳转到应用商店的app详情页面。
项目流程:从app内部点击button按钮或者相应的条目,跳转到应用商店的某个app的详情页面。
实现:
第一步:导入获取手机app工具类
public class marketutils { /** * 获取已安装应用商店的包名列表 * * @param context * @return */ public static arraylist queryinstalledmarketpkgs(context context) { arraylist pkgs = new arraylist(); if (context == null) return pkgs; intent intent = new intent(); intent.setaction("android.intent.action.main"); intent.addcategory("android.intent.category.app_market"); packagemanager pm = context.getpackagemanager(); list infos = pm.queryintentactivities(intent, 0); if (infos == null || infos.size() == 0) return pkgs; int size = infos.size(); for (int i = 0; i < size; i++) { string pkgname = ""; try { activityinfo activityinfo = infos.get(i).activityinfo; pkgname = activityinfo.packagename; } catch (exception e) { e.printstacktrace(); } if (!textutils.isempty(pkgname)) pkgs.add(pkgname); } return pkgs; } /** * 过滤出已经安装的包名集合 * * @param context * @param pkgs * 待过滤包名集合 * @return 已安装的包名集合 */ public static arraylist filterinstalledpkgs(context context, arraylist pkgs) { arraylist empty = new arraylist(); if (context == null || pkgs == null || pkgs.size() == 0) return empty; packagemanager pm = context.getpackagemanager(); listinstalledpkgs = pm.getinstalledpackages(0); int li = installedpkgs.size(); int lj = pkgs.size(); for (int j = 0; j < lj; j++) { for (int i = 0; i < li; i++) { string installpkg = ""; string checkpkg = pkgs.get(j); try { installpkg = installedpkgs.get(i).applicationinfo.packagename; } catch (exception e) { e.printstacktrace(); } if (textutils.isempty(installpkg)) continue; if (installpkg.equals(checkpkg)) { empty.add(installpkg); break; } } } return empty; } /** * 启动到app详情界面 * * @param apppkg * app的包名 * @param marketpkg * 应用商店包名 ,如果为""则由系统弹出应用商店列表供用户选择,否则调转到目标市场的应用详情界面,某些应用商店可能会失败 */ public static void launchappdetail(string apppkg, string marketpkg) { try { if (textutils.isempty(apppkg)) return; uri uri = uri.parse("market://details?id=" + apppkg); intent intent = new intent(intent.action_view, uri); if (!textutils.isempty(marketpkg)) intent.setpackage(marketpkg); intent.addflags(intent.flag_activity_new_task); myapp.getmyapp().startactivity(intent); } catch (exception e) { e.printstacktrace(); } } }
第二部: 实现工具类的lanunchappdetail方法
marketutils.launchappdetail("第一个参数目标app的包名;","第二个参数:应用商店包名");
注意:如果 应用商店包名为空 就会将手机上已下载的应用商店都列出来,让你选择一个进行跳转。
/* *主流应用商店对应的包名如下: com.android.vending google play com.tencent.android.qqdownloader 应用宝 com.qihoo.appstore 360手机助手 com.baidu.appsearch 百度手机助 com.xiaomi.market 小米应用商店 com.wandoujia.phoenix2 豌豆荚 com.huawei.appmarket 华为应用市场 com.taobao.appcenter 淘宝手机助手 com.hiapk.marketpho 安卓市场 cn.goapk.market 安智市场 * */希望可以给大家带来帮助。
上一篇: 我想静静
下一篇: 刘翔110米栏的12秒88记录