挑战练习:ShareCompat

来自:android.support.v4.app.ShareCompat.IntentBuilder

IntentBuilder是一个用来构造ACTION_SEND和ACTION_SEND_MULTIPLE操作接口意图的辅助类,可实现intent共享,并使启动的activity实现内容共享,包括调用activity的Component名和包名。


挑战:在mReportButton的监听器中,改用ShareCompat.IntentBuilder来创建你的Intent


原码(CrimeFragment):


Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT, getCrimeReport());
i.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.crime_report_subject));
i = Intent.createChooser(i, getString(R.string.send_report));
startActivity(i);


使用ShareCompat替换:


ShareCompat.IntentBuilder sc = ShareCompat.IntentBuilder.from(getActivity());
sc.setType("text/plain");
sc.setText(getCrimeReport());       
sc.setSubject(getString(R.string.crime_report_subject));
sc.createChooserIntent();
sc.startChooser();


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 上分享文件有多种方式,以下是其中几种常见的方法: 1. 通过 Intent 进行分享 ```java // 定义分享文件的 Uri Uri fileUri = Uri.parse("file:///sdcard/xxx.txt"); // 创建分享 Intent Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("*/*"); shareIntent.putExtra(Intent.EXTRA_STREAM, fileUri); // 启动分享 Intent startActivity(Intent.createChooser(shareIntent, "分享文件")); ``` 2. 使用 FileProvider 进行分享 ```java // 定义分享文件的 File 对象 File file = new File("/sdcard/xxx.txt"); // 获取 FileProvider 的 Uri Uri fileUri = FileProvider.getUriForFile(this, "com.example.fileprovider", file); // 创建分享 Intent Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("*/*"); shareIntent.putExtra(Intent.EXTRA_STREAM, fileUri); // 授予 URI 临时权限 shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // 启动分享 Intent startActivity(Intent.createChooser(shareIntent, "分享文件")); ``` 以上代码中,`com.example.fileprovider` 是 FileProvider 的 authorities,需要在 AndroidManifest.xml 中进行配置。 3. 使用第三方库进行分享 有一些第三方库可以简化分享文件的操作,如 ShareCompat、EasyShare 等。这里以 ShareCompat 为例: ```java // 定义分享文件的 Uri Uri fileUri = Uri.parse("file:///sdcard/xxx.txt"); // 使用 ShareCompat 进行分享 ShareCompat.IntentBuilder.from(this) .setType("*/*") .setStream(fileUri) .setChooserTitle("分享文件") .startChooser(); ``` 通过以上几种方式,你可以在 Android 上方便地分享文件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值