如何分享一个文件

原创 2015年11月19日 14:04:37
public class FileProviderExample extends Activity {
    private static final String AUTHORITY = "com.example.android.supportv4.my_files";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.file_provider_example);
    }


    public void onShareFileClick(View view) {
        // Save a thumbnail to file
        final File thumbsDir = new File(getFilesDir(), "thumbs");
        thumbsDir.mkdirs();
        final File file = new File(thumbsDir, "private.png");
        android.util.Log.i("FileProviderExample", "onShareFileClick--->file:"+file);
        saveThumbnail(view, file);


        // Now share that private file using FileProvider
        final Uri uri = FileProvider.getUriForFile(this, AUTHORITY, file);
        final Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("image/png");
        intent.putExtra(Intent.EXTRA_STREAM, uri);
        startActivity(intent);
    }


    /**
     * Save thumbnail of given {@link View} to {@link File}.
     */
    private void saveThumbnail(View view, File file) {
        final Bitmap bitmap = Bitmap.createBitmap(
                view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
        android.util.Log.i("FileProviderExample", "saveThumbnail--->width:"+view.getWidth());
        android.util.Log.i("FileProviderExample", "saveThumbnail--->height:"+view.getHeight());
        final Canvas canvas = new Canvas(bitmap);
        view.draw(canvas);


        try {
            final OutputStream os = new FileOutputStream(file);
            android.util.Log.i("FileProviderExample", "saveThumbnail--->os:"+os);
            try {
                bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);
            } finally {
                os.close();
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

}


mainifest.xml


<provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="com.example.android.supportv4.my_files"
            android:grantUriPermissions="true"
            android:exported="false">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/my_paths" />
        </provider>


/res/xml/my_paths.xml

<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Offer access to files under Context.getFilesDir() + "thumbs/"
         through alias "my_thumbs" -->
    <files-path name="my_thumbs" path="thumbs/" />


    <!-- Offer access to files under Environment.getExternalStorageDirectory()
         through alias "my_external" -->
    <external-path name="my_external" />


    <!-- Offer access to files under Context.getCacheDir() -->
    <cache-path name="my_cache" />
</paths>


Android——App内文件分享功能

国内的Android开发者,在遇到App内有分享功能时,基本都是对接友盟分享、ShareSDK分享等第三方SDK。简单的集成SDK以及配置之后,即可分享至多个不同App平台。反而很少来使用Androi...
  • xiaoyu_93
  • xiaoyu_93
  • 2017年08月08日 17:28
  • 1866

Android 7.0适配 打开文件和分享文件

嗯,我就闲来无事想说一句,我是可爱的分割线(●’◡’●)。7.0的禁止不安全路径被外部访问。其中典型例子就是拍照。所以我以为分享图片也是需要适配,实验得知并不是。分享走的是系统的,所以不会有错误,如果...
  • u011216273
  • u011216273
  • 2017年05月31日 17:25
  • 3448

微信文件分享的那些坑

微信文件分享,记录了我踩过的坑,分享给大家,希望大家不要再踩坑了。
  • qq_34706837
  • qq_34706837
  • 2017年07月11日 19:51
  • 645

请求分享一个文件

编写:jdneo - 原文:http://developer.android.com/training/secure-file-sharing/request-file.html 当一个应用程序...
  • chuyouyinghe
  • chuyouyinghe
  • 2015年08月05日 13:38
  • 256

秒懂iOS文件分享

iOS的文件分享可分为两种: 1 在你的应用对某个文档如PDF提供可以选择第三方应用的列表来打开该文件功能 2 让自己应用有能力出现在别人应用的文件打开选择列表里 现在分开介绍这两种...
  • u013538542
  • u013538542
  • 2017年04月22日 18:39
  • 572

Android微信文件分享

Android,微信文件分享
  • xiaonadiandian
  • xiaonadiandian
  • 2016年02月16日 16:36
  • 2114

Android Intent分享文件|分享图片|分享文字|功能的实现

Android Intent 实现分享功能。可分享图片,文件,文字给QQ好友,微信好友,短信联系人。 如我所知:网上已经有一大堆这样相关的资料。但是有些不幸的是:没有看到一个完整的,比较全面的,可以直...
  • DucklikeJAVA
  • DucklikeJAVA
  • 2015年09月19日 21:46
  • 1315

将图片和文件分享到自己的app中来

有时候我们需要将一张图片或者文件从文件管理器中分享到我们自己的app中。 1 我们需要在配置文件中配置下面的信息,才能让别人找到我们的app。 注意是在起始界面的信息中配置         ...
  • u014374622
  • u014374622
  • 2016年09月20日 15:37
  • 583

Android第三方授权分享在新浪微博授权提示:文件不存在 C8998 的解决方法

最近项目集成第三方分享,碰到的一些问题,记录下,也希望有同样问题的朋友可以有所帮助 在新浪微博授权时出现下面的问题 点击一直提示文件不存在c8998什么鬼,再仔细核对过应用签名配置确认无误后还是...
  • siyecaomoyang
  • siyecaomoyang
  • 2017年03月13日 16:06
  • 596

Android使用NFC分享文件

1.NFC   NFC:近距离无线通讯技术
  • chenyjays
  • chenyjays
  • 2014年11月21日 20:23
  • 1740
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何分享一个文件
举报原因:
原因补充:

(最多只允许输入30个字)