您的位置:首页 > 移动开发 > Android开发

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

2013-07-30 15:01 274 查看
当用此方式分享内容时:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: