进行软件评分的功能实现

摘自:http://blog.csdn.net/wangfayinn/article/details/10351655点击打开链接


本来以为一般的软件都会有“去评分”、“亲,给个好评”这样的功能,但是在网上搜了搜竟没有搜到,问了三个群外加5个童鞋,分析log,反编译看源码,终于找到了这个uri,获取他真不容易啊。

[java]  view plain  copy
  1. Uri uri = Uri.parse("market://details?id="+getPackageName());  
  2. Intent intent = new Intent(Intent.ACTION_VIEW,uri);  
  3. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  4. startActivity(intent);  

通过以上代码就能够列出您手机上所安装的所有应用市场(如:google player、豌豆荚、360手机助手等),让您选择。

加点福利吧,把调用分享的代码也贴出来,免得以后到处找:

[java]  view plain  copy
  1. Intent sendIntent = new Intent();  
  2. sendIntent.setAction(Intent.ACTION_SEND);  
  3. sendIntent.setType("text/*");  
  4. sendIntent.putExtra(Intent.EXTRA_TEXT, contentEditText.getText().toString());  
  5. startActivity(sendIntent);  






以下摘自:http://www.cnblogs.com/exmyth/p/4579455.html

Android在跳转市场进行评分问题总结

原本以为应用评分是个很小的功能,但是一实现才发现真不是个小事。网上搜索资料没有找到答案,在很多开发群里面询问了很多人也没有解决问题,最后分析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
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值