最近在工作中遇到一个需求,推广部门要求实现应用自动跳转到应用市场详情页面,通过查找一些资料,实现出来了,觉得有必要整理下方便以后或者有需要的朋友们参考借鉴,下面来一起详细看看 Android 应用自动跳转到应用市场详情页面的方法吧。
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
前言
众所周知在 Android 应用开发过程中,可能会有需求,比如:推广时跳转到应用市场下载应用,跳转到应用市场给自己的应用打分,跳转到应用市场更新自己的应用。
那如何跳转到应用市场呢?
可能跳转的方法大家都是知道的,方法如下:
- public static void goToMarket(Context context, String packageName) {
- Uri uri = Uri.parse("market://details?id=" + packageName);
- Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
- try {
- context.startActivity(goToMarket);
- } catch (ActivityNotFoundException e) {
- e.printStackTrace();
- }
- }
此方法支持应用宝、360 手机助手、豌豆荚、小米商店等主流的应用市场,当手机上面装有多个应用市场时,则会弹出菜单让用户选择调转到哪个市场。那么,问题来了,如果这么简单就结束了,怎么还会有这篇文章呢?
在红米 Note2 上测试时发现,调用此方法默认是直接调转到小米市场,那如果在小米手机上,想要跳转到应用宝或者其他的应用市场怎么办呢,方法自然是有的,如下:
- public static void goToMarket(Context context, String packageName) {
- Uri uri = Uri.parse("market://details?id=" + packageName);
- Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
- try {
- goToMarket.setClassName("com.tencent.android.qqdownloader", "com.tencent.pangu.link.LinkProxyActivity");
- context.startActivity(goToMarket);
- } catch (ActivityNotFoundException e) {
- e.printStackTrace();
- }
- }
看起来好像和第一个方法没什么区别,是的,只需要给多调用
方法,设置指定的应用去处理这个 Intent 事件,这样就可以在小米手机上跳转到应用宝的应用详情页面,而且,上一个方法如果在手机上装有多个应用市场时,会弹出菜单让用户选择,如果已经确定好要跳转到哪个应用市场时,也可使用此方法,直接跳转,省去中间用户选择的环节。
- goToMarket.setClassName()
但是上面方法的思路似乎并不能对所有的应用市场有效,哪天产品经理提出要跳转到三星的应用市场,毕竟三星手机在国内的占有率还是排前几位的,再使用上面的方法,发现懵逼了,三星市场竟然不支持这种方式,难怪三星手机在国内市场节节败退。
不过再笔者的努力下终于找到了如下方法:
- public static void goToSamsungappsMarket(Context context, String packageName) {
- Uri uri = Uri.parse("http://www.samsungapps.com/appquery/appDetail.as?appId=" + packageName);
- Intent goToMarket = new Intent();
- goToMarket.setClassName("com.sec.android.app.samsungapps", "com.sec.android.app.samsungapps.Main");
- goToMarket.setData(uri);
- try {
- context.startActivity(goToMarket);
- } catch (ActivityNotFoundException e) {
- e.printStackTrace();
- }
- }
不过,后来发现在乐视手机上面,乐视的应用市场也是不支持
方法的,所以又专门调研了跳转乐视应用市场的方法,方法如下:
- goToMarket()
- void goToLeTVStoreDetail(Context context, String packageName) {
- Intent intent = new Intent();
- intent.setClassName("com.letv.app.appstore", "com.letv.app.appstore.appmodule.details.DetailsActivity");
- intent.setAction("com.letv.app.appstore.appdetailactivity");
- intent.putExtra("packageName", packageName);
- context.startActivity(intent);
- }
总结
来源: