在这个技术发达的时代,很多人都有了自己的局域网,也许有时候我们需要在 Android 手机上访问局域网内的 Samba 服务器上的共享数据,而这时候,我们可以利用 Android 系统自带的 SmbFile 类来进行访问。
一、Samba 服务器简介
Samba 是一种通过 TCP/IP 协议实现的文件共享服务器,支持多种系统平台之间的文件共享。
Samba 服务器可以在 Linux、Unix、Windows 等系统上运行,它的主要功能是通过 SMB/CIFS 协议来实现文件共享,这个协议是与微软的网络文件共享协议兼容的,因此 Samba 服务器可以通过它来访问 Windows 系统共享出来的文件。
二、Android 访问 Samba 服务器
在 Android 中,我们可以通过 SmbFile 类来实现访问 Samba 服务器。SmbFile 类是系统提供的对 SMB/CIFS 协议的访问类,它可以访问 SMB/CIFS 协议的远程文件,并且可以读写这些文件。在访问 Samba 服务器时,我们还需要用到 JCIFS 工具类库。
将 JCIFS 工具类库添加到 Android 项目中,我们可以在 build.gradle 文件中添加以下代码实现:
implementation 'jcifs:jcifs:1.3.19'
以下是实现访问 Samba 服务器的代码示例:
private void smbTest() {
new Thread(){
@Override
public void run() {
super.run();
try {
String url = "smb://192.168.1.10/Shared/";//samba服务器地址
String username = "user";//samba用户名
String password = "password";//samba密码
SmbFile smbFile = new SmbFile(url, username, password);
SmbFile[] files = smbFile.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()){
Log.d("SmbFile", "文件名称:" + files[i].getName());
} else {
Log.d("SmbFile", "文件夹名称:" + files[i].getName());
}
}
} catch (Exception e) {
Log.e("Smb