c57ef959c208

android快速开发工具类

关于

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

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

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

c57ef959c208

系统的分享界面

c57ef959c208

自定义分享界面

介绍

改工具类实现了

调用系统的分享功能

自定义分享界面功能

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

简单易用

无需接入第三方分享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);

}

}

完毕。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐