android快速开发工具类
关于
Fastandrutils 是一套整理修改整合的android开发常用的工具类。
这样可以减少复制粘贴代码,从而减少重复代码,也不用为了一个常用的功能去谷歌百度,让代码更简洁,让开发更高效。
同时希望您的添加完善,让android开发变得更简单。
系统的分享界面
自定义分享界面
介绍
改工具类实现了
调用系统的分享功能
自定义分享界面功能
可分享文字,文件,图片等
简单易用
无需接入第三方分享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);
}
}
完毕。