android应用中去android市场去评分的功能实现
一般的app可能会有这中功能,在应用中去android商店评分来提高排名,前段时间也把我的博客园上传到商店,这里不得不吐槽一些android商店的开放平台。
酷派,vivo,oppo,联想不支持个人开发者…….
有得还要软件著作证书,一个个人开发者,搞个应用练练手,哪有没精力和财力去搞这些玩意。有的比较人性化仅仅提交免责函或者开发者权力声明就可以。
三星的开放平台真是太烂了,去看看那个网页就认识什么叫差距了,用户体验是最差的。
有的不允许同名(魅族),有的允许(华为,应用宝,小米,阿里)。
言归正传,进入主题,看看如何在android应用中去android市场去评分
第一种简单的方式
实现在android程序中跳转到应用商店评分,代码比较简单,只需要通过隐式意图方式去调用应用商店app详情页就可以。
try { android.net.uri uri = android.net.uri.parse("market://details?id=" + packagename); intent intent = new intent(new intent(intent.actionview, uri)); intent.addflags(activityflags.newtask); startactivity(intent); } catch (exception ex) { system.diagnostics.debug.write(ex.tostring()); alertutil.toastshort(this,"您的手机还没有安装任何安装安装应用市场"); }
其他的一些相关uri:
market://search?q=pname:包名 (通过packagename名搜索app列表)
market://search?q=pub:开发者名称(通过开发者名称搜索app列表)
market://search?q=关键词(通过关键词搜索app列表)
这些方式将会显示搜索的标题
当然你也可以使用跳转网址的方式
android.net.uri uri = android.net.uri.parse(app的网址); intent intent = new intent(new intent(intent.actionview, uri)); startactivity(intent);
这种方式一些问题
上面的这种实现方式,虽然简单容易,但是问题很多,目前发现的有,1.当系统有多个应用商店时会弹出系统自带的选择面板。2.在我的红米note2,红米note3上,即使安装多个应用商店也不会弹出系统自带的选择面板,他会直接跳转到小米应用商店,不得不服太霸道了。
如图:这是系统自带的选择面板
为了避免以上两种问题的出现,所以最好的一种方式还是自定义选择,点击评分弹出自定义的选择面板,由用户去点击选择。
第二种完美的方式
主要的思路就是找出当前已经安装的android商店。弹出面板让由用户自己去选择。
首先需要获取当前已经安装的包名集合
public list getinstallappmarkets(context context) { list pkginstalllist = new list();//当前安装的应用商店 if (context == null) return pkginstalllist; intent intent = new intent(); intent.setaction("android.intent.action.main"); intent.addcategory("android.intent.category.app_market"); android.content.pm.packagemanager pm = context.packagemanager; ilist infos = pm.queryintentactivities(intent, 0); int count = infos.count; if (infos == null || count == 0) return pkginstalllist; for (int i = 0; i < count; i++) { string pkgname = ""; try { activityinfo activityinfo = infos[i].activityinfo; pkgname = activityinfo.packagename; } catch (exception ex) { } if (!string.isnullorempty(pkgname)) { pkginstalllist.add(pkgname); } } return pkginstalllist; }
然后获取手机上已安装的app,过滤剩下应用市场的相关信息定义为appinfo类,appinfo里有这些属性:包名、应用名、icon、版本号。这些属性在后面做一个弹窗之类的功能时候用到,系统自带的弹出选择面板会出现的我们都要显示出来。弹出框这里就不写了。
/// /// 筛选出已经安装的包集合 /// /// ///待筛选的包名集合 /// 已经安装的包名集合 public list getfileterinstallmarkets(context context, list pkgs) { list applist = new list(); if (context == null || pkgs == null || pkgs.count == 0) return applist; packagemanager pm = context.packagemanager; ilistinstalledpkgs = pm.getinstalledpackages(0);//已安装所有包 int installedpkgscount = installedpkgs.count; int pkgscount = pkgs.count; for (int a=0;a ;a++)> 然后我再写一个去应用市场详情页的方法
/// /// 去应用市场app详情页 /// ///应用市场的包名 public void appdetail(string marketpkg) { try { android.net.uri uri = android.net.uri.parse("market://detail?id="+packagename); intent intent = new intent(intent.actionview,uri); if (string.isnullorempty(marketpkg)) intent.setpackage(marketpkg); intent.addflags(activityflags.newtask); startactivity(intent); } catch(exception ex) { alertutil.toastshort(this,ex.tostring()); } }
下一篇: .NET redis cluster
推荐阅读
-
Docker 实现浏览器里开发Android应用的功能
-
android应用中去android市场去评分的功能实现
-
android 标题 换行,Android dialog标题换行和去应用市场给自己的app评分
-
android应用中去android市场去评分的功能实现(吐槽一波个人应用上线...)
-
android打开应用所在的市场页面进行评分操作的方法
-
android实现的仿O2O类app的功能的应用
-
android实现的仿O2O类app的功能的应用
-
Docker 实现浏览器里开发Android应用的功能
-
android应用中去android市场去评分的功能实现
-
android应用中去android市场去评分的功能实现(吐槽一波个人应用上线...)