Android 应用程序之间内容分享 当不存在能够分享的程序 [整理]

当用此方式分享内容时:

Intent sendIntent = new Intent();  
sendIntent.setAction(Intent.ACTION_SEND);  
sendIntent.putExtra(Intent.EXTRA_TEXT, "我的分享内容");  
sendIntent.setType("text/plain");  
startActivity(sendIntent);  

当我们的手机里面没有能够接收分享的应用程序时,你执行startActivity方法,你的程序就会出现Crash(崩溃),所以我们需要先判断下系统是否有这类型的应用程序,判断也很简单:

public boolean hasApplication(Intent intent){  
        PackageManager packageManager = getPackageManager();  
        //查询是否有该Intent的Activity  
        List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);  
        //activities里面不为空就有,否则就没有  
        return activities.size() > 0 ? true : false;  

所以我们在startActivity的时候要做上面的判断,这样子我们开发出来的程序才会更加的健壮,少一些Crash用户体验也会更好,假如

你是否会觉得烦?所以我们也可以使用Intent的Intent.createChooser方法

它有如下优点:

  • 1.1 即使用户选择了默认的方式,选择器仍然会弹出来
  • 1.2 如果没有匹配到这样的应用程序,系统就会提示消息
  • 1.3 你可以指定选择器Dialog的标题
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "我的分享内容");
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent, "弹出框的标题"));

注:某些邮件类应用程序,如Gmail,我们可以使用 putExtra(Intent.EXTRA_EMAIL, String[])  添加一个字符串数组到Intent中


片段来自:

http://blog.csdn.net/xiaanming/article/details/9395991

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值