android自定义分享功能,利用Android 系统的原生 API 实现分享功能

c57ef959c208?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

android快速开发工具类

关于

Fastandrutils 是一套整理修改整合的android开发常用的工具类。

这样可以减少复制粘贴代码,从而减少重复代码,也不用为了一个常用的功能去谷歌百度,让代码更简洁,让开发更高效。

同时希望您的添加完善,让android开发变得更简单。

c57ef959c208?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

系统的分享界面

c57ef959c208?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

自定义分享界面

介绍

改工具类实现了

调用系统的分享功能

自定义分享界面功能

可分享文字,文件,图片等

简单易用

无需接入第三方分享sdk

使用

调用系统的分享界面

new FShare.FShareBuilder(FShareActivity.this, null)

.setShareContent("0000")

.setShareSubject("dddd")

.build()

.shareBySystem();

调用自定义的分享界面

new FShare.FShareBuilder(FShareActivity.this, "cn.hotapk.goodfilemanager.fileprovider")

.setShareContent("0000")

.setShareSubject("dddd")

// .setShareFilter(new String[]{"com.tencent.mm", "cn.andouya", "com.qihoo360.feichuan", "com.lenovo.anyshare", "com.sand.airdroid"})

.build()

.shareByCustom();

参数说明

参数

说明

mActivity

FragmentActivity

shareFilter

显示你想要分享出去的应用的包名类别

filePath

文件路径

topTitle

显示标题

shareContent

分享的内容

shareSubject

分享的主题

authorities

Android7.0的文件权限 的FileProvider AndroidManifest.xml provider下配置的名称

requestCode

startActivityForResult 回调

componentNames

ComponentName列表

关键代码

指定分享到某个应用

private Intent getIntent(ComponentName componentName, String mimeType, Uri uri) {

Intent shareIntent = new Intent(Intent.ACTION_SEND);

if (componentName != null) {

shareIntent.setComponent(componentName);

}

shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

shareIntent.setType(mimeType);

if (uri != null) {

shareIntent.putExtra(Intent.EXTRA_STREAM, uri);

}

shareIntent.putExtra(Intent.EXTRA_TEXT, shareContent);

shareIntent.putExtra(Intent.EXTRA_SUBJECT, shareSubject);

return shareIntent;

}

获取所有支持分享的应用

List shareBeans = new ArrayList<>();

Intent intent = new Intent(Intent.ACTION_SEND);

intent.setType(mimeType);

List resolveInfos = getActivity().getPackageManager().queryIntentActivities(intent,

PackageManager.MATCH_DEFAULT_ONLY);

for (int i = 0; i < resolveInfos.size(); i++) {

ResolveInfo resolveInfo = resolveInfos.get(i);

PackageManager pm = getActivity().getApplication().getPackageManager();

ActivityInfo activityInfo = resolveInfo.activityInfo;

ShareBean shareBean = new ShareBean();

shareBean.setAppName(activityInfo.loadLabel(pm).toString());

shareBean.setPackageName(activityInfo.packageName);

shareBean.setClassName(activityInfo.name);

shareBean.setIcon(activityInfo.loadIcon(pm));

if (shareFilter != null && shareFilter.length > 0) {

for (int j = 0; j < shareFilter.length; j++) {

if (shareBean.getPackageName().equals(shareFilter[j])) {

shareBeans.add(shareBean);

}

}

} else {

shareBeans.add(shareBean);

}

}

完毕。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值