原本以为应用评分是个很小的功能,但是一实现才发现真不是个小事。网上搜索资料没有找到答案,在很多开发群里面询问了很多人也没有解决问题,最后分析log,反编译看源码才终于有了些眉目,好吧,上代码:

1 try{
2 Uri uri = Uri.parse("market://details?id="+getPackageName());
3 Intent intent = new Intent(Intent.ACTION_VIEW,uri);
4 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
5 startActivity(intent);
6 }catch(ActivityNotFoundException e){
7 Toast.makeText(context, "Couldn't launch the market !", Toast.LENGTH_SHORT).show();
8 }

而且在测试时发现在有些奇葩的没有安装应用市场的手机上面会出现直接退出应用的bug,于是又对异常进行了处理,现在终于把问题完美解决啦~

 
 
在HTC手机上会默认跳转到HTC商城,可以强制改变跳转方法,让应用跳转到360市场,代码如下:
Intent intent = new Intent(Intent.ACTION_VIEW);
//跳转到360市场评分
ComponentName cn = new ComponentName("com.qihoo.appstore",
"com.qihoo.appstore.activities.SearchDistributionActivity");
intent.setComponent(cn);
intent.setData(Uri.parse("market://details?id=com.xiaoma.tuofu"));
startActivity(intent);
 
//判断市场是否存在的方法
public static boolean isAvilible(Context context, String packageName){ 
        final PackageManager packageManager = context.getPackageManager();//获取packagemanager 
        List< PackageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息 
        List<String> pName = new ArrayList<String>();//用于存储所有已安装程序的包名 
       //从pinfo中将包名字逐一取出,压入pName list中 
            if(pinfo != null){ 
            for(int i = 0; i < pinfo.size(); i++){ 
                String pn = pinfo.get(i).packageName; 
                pName.add(pn); 
            } 
        } 
        return pName.contains(packageName);//判断pName中是否有目标程序的包名,有TRUE,没有FALSE 
  }
//判断360市场是否存在
 if (GetUri.isAvilible(AppsActivity.this, "com.qihoo.appstore")) {
//市场存在
}else{
//市场不存在
/*********************************华丽的分割线********************************************/
public void test(View v) {
// 判断360市场是否存在
if (isAvilible(My.this, "com.qihoo.appstore")) {
// 市场存在
 
Intent intent = new Intent(Intent.ACTION_VIEW);
// 跳转到360市场评分
ComponentName cn = new ComponentName("com.qihoo.appstore",
"com.qihoo.appstore.activities.SearchDistributionActivity");
intent.setComponent(cn);
intent.setData(Uri
.parse("market://details?id=com.paopaobeauty.meinv"));
startActivity(intent);
} else {
// 市场不存在
Toast.makeText(getApplicationContext(), "请下载360手机助手", 0).show();
}
}
 
// 判断市场是否存在的方法
public static boolean isAvilible(Context context, String packageName) {
final PackageManager packageManager = context.getPackageManager();// 获取packagemanager
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
List<String> pName = new ArrayList<String>();// 用于存储所有已安装程序的包名
// 从pinfo中将包名字逐一取出,压入pName list中
if (pinfo != null) {
for (int i = 0; i < pinfo.size(); i++) {
String pn = pinfo.get(i).packageName;
pName.add(pn);
}
}
return pName.contains(packageName);// 判断pName中是否有目标程序的包名,有TRUE,没有FALSE
}

Android在跳转市场进行评分问题总结的更多相关文章

  1. android应用中去android市场去评分的功能实现(吐槽一波个人应用上线...)

    一般的app可能会有这中功能,在应用中去android商店评分来提高排名,前段时间也把我的博客园上传到商店,这里不得不吐槽一些android商店的开放平台. 酷派,vivo,oppo,联想不支持个人开 ...

  2. Android app去应用市场评分功能

    因为android市场很多,去各个应用市场评分的功能却不是很难实现. private void gotoRate(){ Uri uri = Uri.parse("market://detai ...

  3. ios------app跳转到appStore评分

    跳转到AppStore评分,有两种方法: 一种是跳出应用,跳转到AppStore,进行评分: 另一种是在应用内,内置AppStore进行评分. PS:appID在https://itunesconne ...

  4. Android 页面跳转之生命周期调用顺序问题

    Android Activity 常用技巧 Android Activity 启动模式和任务栈 Android 页面跳转之生命周期调用顺序问题 一.页面跳转逻辑分析 1.1 跳转逻辑分析 Androi ...

  5. Android——Activity跳转

    Activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayou ...

  6. android Fragment跳转Fragment

    android Fragment跳转Fragment,最新的android studio3 在系统模板建立的BottomNavigationView 中跳转方式 此版本下不能用FragmentMana ...

  7. Android实现跳转到应用市场进行版本更新功能

    最近需要做应用版本更新功能,因为之前已经写过一篇版本更新的功能了,虽然请求接口还是用的HttpUrlConnection,想着改改现在应用使用的请求方式也挺快的嘛,心里开始暗喜,可以偷偷懒了,哈哈哈. ...

  8. Android 调用已安装市场,进行软件评分的功能实现

    Uri uri = Uri.parse("market://details?id="+getPackageName()); Intent intent = new Intent(I ...

  9. 【转】Android各大发布市场

    前言 如果只有一个或者少许的两三个Android市场,本文也没用存在的必要性,本文谨献给同在Android奋战的同仁. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnbl ...

随机推荐

  1. Socket服务端口长连接最多能支持多少?

    答案是无限的.视服务端的资源而不同. 以前一直认为服务端在Accept客户端连接后,会开启一个新的端口与客户端建立链路,但这是错误的.事实上,一个连路是由Server IP+server Port + ...

  2. 2015-09-28Javascript(一)

  3. (转)第三方登录(QQ登录)开发流程详解

    近排由于工作的繁忙,已经一个星期没写博文做分享了,接下来我对网站接入第三方登录----QQ登录的实现逻辑做一个详细的讲解. 对于整个流程的详细文档可以到QQ互联官网(http://wiki.conne ...

  4. 【转】常用背景色RGB数值

    [转自]http://blog.sina.com.cn/s/blog_8fc890a201013z8h.html

  5. 信息增益(IG,Information Gain)的理解和计算

    决策树构建中节点的选择靠的就是信息增益了. 信息增益是一种有效的特征选择方法,理解起来很简单:增益嘛,肯定是有无这个特征对分类问题的影响的大小,这个特征存在的话,会对分类系统带来多少信息量,缺了他行不 ...

  6. javascript 滚动条下拉导航fixed

    <!doctype html> <html> <style> body{ margin:; padding:; } #top{ background:#; widt ...

  7. 003-C运算符

    运算符 C语言有34种运算符,常见的有加减乘除. 1>算术运算符 1.加 10+2 2.减 20-2 3.乘 12*2 4.除 10/2 5.取余 10%3 = 1; 10%-3 = 1; -1 ...

  8. express源码剖析--Router模块

    1.加载模块执行代码: methods.forEach(function(method){ //method是http协议的各种请求方法,如:get,put,headee,post Route.pro ...

  9. Android 将从网络获取的数据缓存到私有文件

    1:activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/androi ...

  10. 获取Map API Key

    开发人员在基于Google Maps服务进行开发之前,需要申请一组验证过的Map API Key,这样才可以使用Google Maps服务.申请过程如下:1.在Eclipse中打开“Window”|“ ...