这是我上周提出的问题的更新版本。
我正在尝试使用 SmbFileInputStream 将我的 Android 连接到我的 PC,
但应用程序中止(在我的平板电脑上)并显示以下错误消息:
"The application has stopped unexpectedly. Please try again."
我正在使用 Try/Catch,但它不会触发任何这些异常。
适用的代码如下所示:
SmbFile inFile = null;
jcifs.Config.setProperty( "jcifs.netbios.wins", "192.168.2.2" ) }
try { inFile = new SmbFileInputStream( "smb://MIKE-PC/Users/Public/List1.txt" ); }
catch (SmbException e) { ListItems.add("SMB Error"); }
catch (MalformedURLException e) { ListItems.add("URL Error"); }
catch (UnknownHostException e) { ListItems.add("Host Error"); }
我尝试了带有和不带有名称和密码的代码,但都不起作用:
try { inFile = new SmbFile( "smb://MIKE-PC_Network:123ABC@Mike-PC/" ); }
当我尝试分两步执行时,SmbFile 不会中止,但 SmbFileInputStream 会中止。
try { sFile = new SmbFile( "smb://MIKE-PC/Users/Public/List1.txt" ); }
try { inFile = new SmbFileInputStream( sFile ); }
当我尝试获取文件列表时,SmbFile 不会中止,但 sFile.list 会中止。
try { sFile = new SmbFile( "smb://MIKE-PC/" ); }
try { lBuf = sFile.list(); . . .
我位于本地网络,而不是域。
平板电脑能够使用另一个应用程序登录,因此我知道网络正常。
我已经尝试了用户、网络、PC 名称的所有可能组合。
SMB 需要一些额外信息才能正常工作吗?
例如,经过几天的网络搜索,我看到了以下提示:
* Java SMB 无法在 Android 中运行 - 这是真的吗?我有哪些?
* 将 jcifs.jar 放在 libs 文件夹中将无法与 jcifs 一起使用。
* 我是否需要将 jCIFS jar 文件添加到 CLASSPATH,还是由 Eclipse 处理?
* 如果我给SmbFileInputStream一个文字字符串,我需要调用registerSmbURLHandler吗?
* 是否需要在 list 中添加读取外部权限?
这是真的吗?我该怎么办?
最佳答案
您是否尝试过“smb://用户名:密码@本地ip/”使用实际IP地址进行操作。对我来说,我必须使用 IP 来完成此操作,使用计算机名称我的应用程序从未连接到 Windows 共享并崩溃。
关于java - 尝试使用 SmbFileInputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13871198/