介绍
介绍
福哥再开发Android的APP需要“分享”功能,经过一番研究终于做出来了
在这里给大家分享一下~~
教程
Intent.createChooser
通过Intent.createChooser加载分享选择框
文字分享
直接将手机中的支持分享的软件都列出来的方法
Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_TEXT, "福哥好棒"); intent.setType("text/plain"); context.startActivity(Intent.createChooser(intent, "告诉福哥你想分享的功能"));
图片分享
直接将手机中的支持分享的软件都列出来的方法
Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + context.getPackageName() + "/" + R.mipmap.ic_test)); intent.setType("image/*"); context.startActivity(Intent.createChooser(intent, "告诉福哥你想分享的功能"));
效果如下
这是分享选择框效果
选择分享功能
选择分享功能
直接通过Intent.createChooser开启分享选择框,会发现全部可用功能都列出来了
如果想根据需要自己选择的分享功能的话,就需要通过PackageManager这个对象了
Intent intent = new Intent(); Uri uri; String extraType, intentType; // make share content uri = Uri.parse("android.resource://" + context.getPackageName() + "/" + R.mipmap.ic_test); extraType = Intent.EXTRA_STREAM; intentType = "image/*"; intent.setAction(Intent.ACTION_SEND); intent.putExtra(extraType, uri); intent.setType(intentType); // get package list PackageManager packageManager = context.getPackageManager(); List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(intent,0); if(resolveInfos.isEmpty()){ return; } // select share methods List<Intent> funIntents = new ArrayList<>(); for (ResolveInfo resolveInfo : resolveInfos) { ActivityInfo activityInfo = resolveInfo.activityInfo; String packageName = activityInfo.packageName, packageLabel = resolveInfo.loadLabel(packageManager).toString(); if (packageName.contains("com.tencent.mm") && ( packageLabel.contains("发送给朋友") || packageLabel.contains("发送到朋友圈") )){ Intent funIntent = new Intent(); funIntent.setAction(Intent.ACTION_SEND); funIntent.setComponent(new ComponentName(activityInfo.packageName,activityInfo.name)); funIntent.putExtra(extraType, uri); funIntent.setType(intentType); funIntents.add(new LabeledIntent(funIntent,activityInfo.packageName,resolveInfo.loadLabel(packageManager),resolveInfo.icon)); } } if (funIntents.size()<= 0){ return; } // show share methods Intent chooserIntent = Intent.createChooser(funIntents.remove(funIntents.size() - 1), "告诉福哥你想分享的功能"); if (chooserIntent == null){ return; } LabeledIntent[] labeledIntents = funIntents.toArray(new LabeledIntent[funIntents.size()]); chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,labeledIntents); context.startActivity(chooserIntent);
效果如下
这是分享选择框效果
APP程序包目录
福哥收录了部分APP软件的包名称和包标题
com.android.bluetooth 蓝牙 com.android.mms 信息 com.android.notes 便签 com.bbk.cloud 备份到云服务 com.vivo.gallery 共享相册 com.vivo.space 发帖到官网 com.vivo.space vivo客服 cn.wps.moffice_eng 转为PDF cn.wps.moffice_eng 提取文字 cn.wps.moffice_eng 转为表格 cn.wps.moffice_eng 转为演示 cn.wps.moffice_eng 保存到WPS云文档 com.alibaba.android.rimet 钉钉 com.eg.android.AlipayGphone 支付宝二维码识别 com.eg.android.AlipayGphone 支付宝 com.jingdong.app.mall 拍照购 com.qb.qtranslator 腾讯翻译君 com.qiyi.video 爱奇艺 com.sina.weibo 微博 com.sina.weibo 微博故事 com.sina.weibo 微博好友 com.taobao.taobao 拍立淘 com.tencent.mm 发送给朋友 com.tencent.mm 添加到微信收藏 com.tencent.mm 发送到朋友圈 com.tencent.mtt 智能识图 com.tencent.mtt 保存到QQ浏览器 com.tencent.mtt 编辑并分享 com.tencent.wework 发送给同事 com.tmall.wireless 手机天猫