重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

android共享文件,安卓手机 文件共享

安卓es文件浏览器是如何实现文件共享的?

我周末刚研究过。新版的ES文件浏览器已有“远程设置”功能,就是\x0d\x0a文件共享。实际就是ftp服务端,端口3721,协义就是ftp协义。\x0d\x0a与PC的ftp是一样的协议。\x0d\x0a将ES的浏览器的“远程文件访问”勾上,就可让PC通过无线WIFI访问SD卡了。\x0d\x0a访问路径,手机上会显示的!

创新互联建站主营来宾网站建设的网络公司,主营网站建设方案,成都App定制开发,来宾h5微信平台小程序开发搭建,来宾网站营销推广欢迎来宾等地区企业咨询

利用 Android 系统原生 API 实现分享功能(2)

在之前的一篇文章 利用 Android 系统原生 API 实现分享功能 中主要说了下实现流程,但具体实施起来其实还是有许多坑要面对。那这篇文章就是提供一个封装好的 Share2 库供大家参考。

GitHub 项目地址:Share2

看过上一篇文章的同学应该知道,要调用 Android 系统内建的分享功能,主要有三步流程:

更多相关内容请参考上一篇,这里就不再重复赘述了。

知道大致的实现流程后,其实只要解决下面几个问题后就可以具体实施了。

这其实是直接决定了最终的实现形态,我们知道常见的使用场景中,只是为了在应用间分享图片和一些文件,那对于那些只是分享文本的产品而言,两者实现起来要考虑的问题完全不同。

所以为了解决这个问题,我们可以预先定好支持的分享内容类型,针对不同类型可以进行不同的处理。

在 Share2 中,一共定义了5种类别的分享内容,基本能覆盖常见的使用场景。在调用分享接口时可以直接指定内容类型,比如像文本、图片、音视频、已经其他各种类型文件。

对于不同类别的内容,可能会有不同的来源。比如文本可能就只是一个字符串对象,而对于分享图片或其他文件,我们需要一个 Uri 来标识一个资源。这其实就引出来具体实施时的一个大问题,如何获取要分享文件的 Uri,并且这个 Uri 要能被接收分享内容的应用处理才行 。

那么,如何获取要分享内容文件的 Uri?如果处理才能让接收方也能够根据 Uri 获取到文件?

我们把文件 Uri 的来源划分为下面三种类型:

常见场景 :通过文件选择器获取一个文件的 Uri

通过这种方式获取到的 Uri 是由系统 ContentProvider 返回的,在 Android 4.4 之前的版本和之后的版本有较大的区别,我们后面再说怎么处理。只要先记住这种系统返回给我们的 Uri 就行了。

比如调用系统相机进行拍照或录制音视频,要传入一个生成目标文件的 Uri ,从 7.0 开始我们需要用到 FileProvider 来实现。

如果用到了 FileProvider 就要注意跟系统 ContentProvider 返回 Uri 的区别,比如我们在 Manifest 中对 FileProvider 配置 android:authorities="com.xx.xxx.fileProvider" 属性,那这时系统返回的 Uri 格式就变成了 : content://com.xx.xxx.fileProvider... ,对于这种类型的 Uri 我们姑且叫 自定义 FileProvider 返回的 Uri ,后面一并说怎么处理。

我们调用 new File 时需要传入指定的文件路径,这个绝对路径通常是: /storage/emulated/0/... 这种样式,我们要想调用分享时也要变成 Uri 的形式才可以,那么如何把文件路径变成一个文件 Uri ?这个问题下面也一并进行回答。

前面提到了文件 Uri 的三种分类,对应不同类型处理方式也不同,不然你最先遇到的问题就是:

这是由于对系统返回的 Uri 缺失访问权限导致,所以要对应用进行临时访问 Uri 的授权才行,不然会提示权限缺失。

对于要分享系统返回的 Uri 我们可以这样进行处理:

需要注意的是对于自定义 FileProvider 返回 Uri 的处理,即使是设置临时访问权限,但是分享到第三方应用也会无法识别该 Uri

典型的场景就是,我们如果把自定义 FileProvider 的返回的 Uri 设置分享到微信或 QQ 之类的第三方应用,会提示文件不存在,这是因为他们无法识别该 Uri。

关于这个问题的处理其实跟下面要说的把文件路径变成系统返回的 Uri 一样,我们只需要把自定义 FileProvider 返回的 Uri 变成第三方应用可以识别系统返回的 Uri 就行了。

创建 FileProvider 时需要传入一个 File 对象,所以直接可以知道文件路径,那就把问题都转换成了: 如何通过文件路径获取系统返回的 Uri

下面是根据传入的 File 对象和类型来查询系统 ContentProvider 来获取相应的 Uri,已经按照不同文件类型在不同系统版本下的进行了适配。

其中 forceGetFileUri 方法是通过反射实现的,处理 7.0 以上系统的特殊情况下的兼容性,一般情况下不会调用到。Android 7.0 开始不允许 file:// Uri 的方式在不同的 App 间共享文件,但是如果换成 FileProvider 的方式依然是无效的,我们可以通过反射把该检测干掉。

通过 File Path 转成 Uri 的方式,我们最终统一了调用系统分享时传入内容 Uri 的三种不同场景,最终全部转换为传递系统返回的 Uri,让第三方应用能够正常的获取到分享内容。

Share2 按照上述方法进行了具体实施,可以通过下面的方式进行集成:

分享图片到指定界面,比如分享到微信朋友圈

GitHub 项目地址:Share2

安卓手机怎样访问电脑的共享文件

访问方法如下:

1,按 Win+R 打开运行,输入 service.msc 并回车打开。

2,确认其中Server与Windows Media Player Network Sharing Service这两项服务是启动的。

3,打开:控制面板——用户账户和家庭安全——用户账户——管理其他账户。

4,点击“ Guest帐户 ”。

5,点击“ 启用 ”,开启系统来宾账户,使安卓设备访问pc时不用输入用户名和密码即可访问,因为处于同一家庭局域网,因此不用担心安全性。

6,打开需要共享的文件夹属性,在“ 共享 ”选项卡下,点击“ 共享 ”按钮。

7,在下拉列表里选择Guest帐户,并点击“ 添加 ”。

8,确定后返回,点击“ 网络和共享中心 ”。

9,在高级共享设置中,选择“ 启用网络发现 ”、“ 启用文件和打印机共享 ”、“ 启用共享以便可以访问网络的用户可以读取和写入公用文件夹中的文件 ”。

10,确认“ 媒体流已打开 ”和“ 关闭密码保护共享 ”,然后单击“ 保存修改 ”。

怎样在安卓手机与电脑间利用WIFI共享文件

对于其他手机可能就无能为力了,但是强大的android手机还可以通过WIFI与电脑间共享文件,android手机有wifi功能,现在绝大部分笔记本及电脑有自带wifi功能,使用wifi速度快且操作简便。下面就来说说怎么共享吧!

1、先确定手机已经和家中或者公司无线网络连接成功(这步有用wifi的机友一般都不用设置了),如果没连接的,去手机设置-无线和网络-WIFI设置中选择自己的无线网络进行连接。电脑也要连上无线网络哦,而且要和手机连的WIFI网络是同一个,要不然就无法连接了。

2、在手机端安装名为EStrongs File Explorer的文件浏览器(后面简称ES文件管理器),该文件管理器是免费的,支持中文,而且功能相当强大。

3、在手机端打开ES文件浏览器,然后在菜单中选择显示标签

4、此时在软件的上方就会看到三个标签,有本地,共享和远程,本地代表的就是您手机中的文件,共享就是我们下面要用到的,而远程则是FTP远程文件,一般高级用户才会用到,这里就不多做介绍了。

5、进入共享后会看到如下的界面,什么也没有,这时需要我们来新建了,屏幕中央也给出了相应的操作提示。

6、打开程序的菜单,在菜单中选择新建选项

7、在弹出的菜单中选择搜索,这样比较省事,如果您比较在行,也可以选择服务器自己手动新建。

8、选择搜索后,稍等片刻,这时候就会搜索到与wifi网络相连接的'电脑IP,如果您是在家中,只有自己的电脑在连接,那就只会搜到一个,演示时我是在公共网络,所以会搜到很多和该wifi连接的IP,只需找到自己电脑相应的IP打开即可。

9、例如我的电脑IP是192.168.1.1,只需双击192.168.1.1的电脑图标,这时候就可以看到电脑已经共享的文件夹名称,如下图

10、最后一步要做的就是将需要的文件进行复制和粘贴的操作了,选择需要的文件,然后复制粘贴到您手机本地的内存卡中,这样就算完成了!

两台安卓设备如何在局域网内共享文件夹或文件?

建议自己组网,如群晖,挂在路由器下面就行,共享不是问题的。

Android平台下怎么实现文件的共享

安卓手机和psv互联并实现文件共享或传输方法: 1、用Android手机开热点传输,给手机下一个 wifi file explore 然后手机开热点。psv接入然后用psv浏览器查看手机文件然后下载下来; 2、看见一个局域网的网址记下来; 3、用psv登录后找到自己要传输的文件; 4、然后就可以下载了。


名称栏目:android共享文件,安卓手机 文件共享
标题URL:http://cqcxhl.com/article/phchcd.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP