Zugriff auf Samba Server

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Twissi, 24.01.2012.

  1. Twissi, 24.01.2012 #1
    Twissi

    Twissi Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    82
    Erhaltene Danke:
    3
    Registriert seit:
    12.06.2011
    Hallo,
    ich schreibe gerade an einer App welche zum einen alle lokalen Dateien anzeigt und öffnen kann (geht bereits) und auch einen Samba Server ansprechen können soll und auf dem das gleiche wie lokal machen können soll. Also alle Dateien auflisten und öffnen.
    Nur will das nicht so wirklich funktionieren...

    Ich habe bereits versucht mit der JCIFS Libary zu verbinden aber dort bekomme ich nur:

    Code:
    java.lang.ExceptionInInitializerError
    Und auch einfach via:

    Code:
    File file = new File("smb://name:pass@server/share/");
    kommt auch nichts zu stande.

    Hat vielleicht schonmal jemand von euch etwas in der Richtung entwickelt und kann mir weiterhelfen?

    Danke :)
     
  2. Sentence, 25.01.2012 #2
    Sentence

    Sentence Erfahrener Benutzer

    Beiträge:
    242
    Erhaltene Danke:
    51
    Registriert seit:
    27.01.2011
    Phone:
    S3, S6 Edge
    wegen Dummheit gelöscht!
    Ich habs zwar gelesen, aber gleich wieder vergessen ;-)
     
    Zuletzt bearbeitet: 26.01.2012
  3. Twissi, 25.01.2012 #3
    Twissi

    Twissi Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    82
    Erhaltene Danke:
    3
    Registriert seit:
    12.06.2011
    Hi,
    Wenn du meinen Post nochmal liest wird dir auffallen das ich JCIFS bereits versucht habe und es in dem lustigen error geendet hat. Aber danke für die Antwort :)

    Lg

    Nachtrag: Habe mal ein wenig getestet. Also JCIFS scheint nur auf meinem Transformer nicht zu gehen. Auf meinem Defy läuft es Oo Gibt es da bekannte Probleme mit Android 3.2 oder so?

    Nachtrag Nr. 2:

    Hab den Fehler gefunden! :D (Da muss man erstmal drauf kommen):

    Es gibt in Android 3.2 wohl eine Blockade die es dem Thread irgendwie nicht direkt erlaubt Dinge wie SMB auszuführen. Man muss die Policy ändern damit es geht:

    Code:
    ThreadPolicy tp = ThreadPolicy.LAX;
    StrictMode.setThreadPolicy(tp);
    
    Danke :)
    Gesendet mit der Android-Hilfe.de-App
     
    Zuletzt bearbeitet: 25.01.2012
  4. Agassiz, 16.10.2012 #4
    Agassiz

    Agassiz Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    7
    Registriert seit:
    11.06.2010
    Hi, ich möchte auch einfach nur die Dateien aus einem Ordner im Netzwerk auflisten.

    Dazu nutze ich jCIFS. So. kurz und knapp: Timeout Exception :(

    hier mein kleiner und kurzer code:

    Code:
    package com.dima.wbrowser;
    
    import jcifs.smb.SmbFile;
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.StrictMode;
    import android.os.StrictMode.ThreadPolicy;
    import android.view.Menu;
    
    public class Main extends Activity {
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    
    		ThreadPolicy tp = ThreadPolicy.LAX;
    		StrictMode.setThreadPolicy(tp);
    		
    		String path = "smb://192.168.178.20/Share/";
    		SmbFile sFile;
    		try {
    			sFile = new SmbFile(path);
    			System.out.println(sFile.getType());
    			
    			SmbFile[] sfs = sFile.listFiles();
    			System.out.println(sfs.length);
    			System.out.println("Done");
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    	}
    
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		getMenuInflater().inflate(R.menu.activity_main, menu);
    		return true;
    	}
    }
    
    
    Die permissions in der manifest datei sind:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE"/>



    Der Code scheint bei dem "getType" zu haken. Ich habe aber auch ähnliches schon ausprobiert, mit listFiles() - da war das gleiche Problem. Der Ordner ist freigegeben und jeder darf dort alles. Funktioniert der Code bei jemandem? Oder was mache ich falsch?

    Vielen Dank.
     

Diese Seite empfehlen