使用smb协议将我的应用程序连接到本地网络

时间:2018-06-13 08:35:14

标签: android smb jcifs local-network

我尝试使用Windows协议将我的Android应用程序连接到公司本地网络(smb)。问题是我在这件事上有点新手,有些东西让我失望。 目标是将文件AREQA.txt从网络下载到设备。但是,我甚至无法验证代码是否可以跟踪文件位置,因为当我将其编译到设备时应用程序崩溃(它加载正常但在我调用DownLoadF001过程时崩溃)。这是代码:

    public void DownLoadF001(View v) {
        jcifs.Config.registerSmbURLHandler();
        String user;
        String password;
        String filename;
        File localFile;
        SmbFile path = null;
        try {
            NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null,"@@@@@@", "********");
            path = new SmbFile("smb:\\192.168.1.11/.../AREQA.txt", auth);
            try {
                if(path.exists()){
                    Toast.makeText(getApplicationContext(), "Sucesso!", Toast.LENGTH_LONG).show();
                    }
            } catch (Exception e1) {
                Toast.makeText(getApplicationContext(), e1.toString(), Toast.LENGTH_LONG).show();
            }
        } catch (MalformedURLException e2) {
            Toast.makeText(getApplicationContext(), e2.toString(), Toast.LENGTH_LONG).show();
        }
    }

我已经尝试从主要的try中删除内部Exception e1(及其所有相关代码),然后应用程序停止崩溃。但是,没有它,我无法看到连接是否正常。

编辑:我设法抓住错误(java.lang.NullPointerException: Attempt to invoke virtual method int java.lang.String.length()' on a null object reference):

.xml。有什么想法可以解决吗?

另外,正如@greenapps指出的那样,我通过onClick方法从<?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="DEV_HOME" value="./logs" /> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern> %d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n </Pattern> </layout> </appender> <!--<appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">--> <appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${DEV_HOME}/nameOfYourLog.log</file> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern> %d{yyyy-MM-dd HH:mm:ss} - %msg%n </Pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- rollover daily --> <fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log </fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>10MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender> <logger name="com.the.package.you.wish.to.log" level="debug" additivity="false"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE-AUDIT" /> </logger> <root level="error"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE-AUDIT" /> </root> </configuration> 按钮调用此过程。

0 个答案:

没有答案