IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Création fichier sur répertoire partagé via SMB


Sujet :

Android

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Ingénieur après-vente
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Création fichier sur répertoire partagé via SMB
    Bonjour,

    Je débute en programmation Java sous Android, mes connaissances en Java sont très limitées (mais j'essaie de m'accrocher)...
    Jusqu'à présent j'arrivais à m'en sortir grâce aux Tuto ou aux discussions sur le forum mais là je bloque depuis quelques jours...

    Voici mon soucis, je me suis lancé dans une petite application qui permet , entre autres, de créer un fichier dans un répertoire partagé sur un PC (Windows Vista).
    Le répertoire partagé "test" est à la racine c:\. L'adresse IP du PC est 192.168.1.4.
    Le login et mot de passe du PC pour ouvrir la session sont respectivement "user" et "psswd".
    J'ai installé la librairie jcifs-1-3.17.jar.
    Au niveau du manifest, voici les permissions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    et voici le code implémenté dans MainActivity :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        public void NextClick() throws IOException {
    NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("","user","psswd");
    SmbFile destinationfile = new SmbFile("smb://192.168.1.4/test/essai.txt",auth);
    SmbFileOutputStream sfos = new SmbFileOutputStream(destinationfile);
    sfos.write("essai test".getBytes());
    sfos.close();
    }

    et pour finir voici le log cat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    08-08 09:39:10.960: I/System.out(16652): Sending WAIT chunk
    08-08 09:39:10.960: W/ActivityThread(16652): Application pack.qcm_demo is waiting for the debugger on port 8100...
    08-08 09:39:11.100: I/dalvikvm(16652): Debugger is active
    08-08 09:39:11.160: I/System.out(16652): Debugger has connected
    08-08 09:39:11.160: I/System.out(16652): waiting for debugger to settle...
    08-08 09:39:11.360: I/System.out(16652): waiting for debugger to settle...
    08-08 09:39:11.560: I/System.out(16652): waiting for debugger to settle...
    08-08 09:39:11.760: I/System.out(16652): waiting for debugger to settle...
    08-08 09:39:11.960: I/System.out(16652): waiting for debugger to settle...
    08-08 09:39:12.165: I/System.out(16652): waiting for debugger to settle...
    08-08 09:39:12.365: I/System.out(16652): waiting for debugger to settle...
    08-08 09:39:12.565: I/System.out(16652): debugger has settled (1310)
    08-08 09:39:12.915: E/SensorManager(16652): thread start
    08-08 09:39:12.915: D/SensorManager(16652): registerListener :: handle = 0  name= LSM330DLC 3-axis Accelerometer delay= 200000 Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41c97d58
    08-08 09:39:12.935: D/SensorManager(16652): unregisterListener::  Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41c97d58
    08-08 09:39:12.935: D/Sensors(16652): Remain listener = Sending .. normal delay 200ms
    08-08 09:39:12.935: I/Sensors(16652): sendDelay --- 200000000
    08-08 09:39:12.935: D/SensorManager(16652): JNI - sendDelay
    08-08 09:39:12.935: I/SensorManager(16652): Set normal delay = true
    08-08 09:39:12.980: D/SensorManager(16652): registerListener :: handle = 0  name= LSM330DLC 3-axis Accelerometer delay= 200000 Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41c97d58
    08-08 09:39:13.040: D/libEGL(16652): loaded /system/lib/egl/libEGL_mali.so
    08-08 09:39:13.055: D/libEGL(16652): loaded /system/lib/egl/libGLESv1_CM_mali.so
    08-08 09:39:13.055: D/libEGL(16652): loaded /system/lib/egl/libGLESv2_mali.so
    08-08 09:39:13.060: D/(16652): Device driver API match
    08-08 09:39:13.060: D/(16652): Device driver API version: 10
    08-08 09:39:13.060: D/(16652): User space API version: 10 
    08-08 09:39:13.060: D/(16652): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Tue Oct 16 15:37:13 KST 2012 
    08-08 09:39:13.105: D/OpenGLRenderer(16652): Enabling debug mode 0
    08-08 09:39:19.640: D/SensorManager(16652): unregisterListener::  Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41c97d58
    08-08 09:39:19.640: D/Sensors(16652): Remain listener = Sending .. normal delay 200ms
    08-08 09:39:19.640: I/Sensors(16652): sendDelay --- 200000000
    08-08 09:39:19.640: D/SensorManager(16652): JNI - sendDelay
    08-08 09:39:19.640: I/SensorManager(16652): Set normal delay = true
    08-08 09:39:19.900: D/SensorManager(16652): registerListener :: handle = 0  name= LSM330DLC 3-axis Accelerometer delay= 200000 Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41cbf590
    08-08 09:39:19.920: D/SensorManager(16652): unregisterListener::  Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41cbf590
    08-08 09:39:19.920: D/Sensors(16652): Remain listener = Sending .. normal delay 200ms
    08-08 09:39:19.920: I/Sensors(16652): sendDelay --- 200000000
    08-08 09:39:19.920: D/SensorManager(16652): JNI - sendDelay
    08-08 09:39:19.920: I/SensorManager(16652): Set normal delay = true
    08-08 09:39:19.945: D/SensorManager(16652): registerListener :: handle = 0  name= LSM330DLC 3-axis Accelerometer delay= 200000 Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41cbf590
    08-08 09:39:20.075: D/SensorManager(16652): unregisterListener::  Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41cbf590
    08-08 09:39:20.080: D/Sensors(16652): Remain listener = Sending .. normal delay 200ms
    08-08 09:39:20.080: I/Sensors(16652): sendDelay --- 200000000
    08-08 09:39:20.080: D/SensorManager(16652): JNI - sendDelay
    08-08 09:39:20.080: I/SensorManager(16652): Set normal delay = true
    08-08 09:39:20.165: D/dalvikvm(16652): GC_CONCURRENT freed 110K, 6% free 12468K/13127K, paused 14ms+12ms, total 41ms
    08-08 09:39:20.255: D/SensorManager(16652): registerListener :: handle = 0  name= LSM330DLC 3-axis Accelerometer delay= 200000 Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41c9bd90
    08-08 09:39:20.270: D/SensorManager(16652): unregisterListener::  Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41c9bd90
    08-08 09:39:20.270: D/Sensors(16652): Remain listener = Sending .. normal delay 200ms
    08-08 09:39:20.270: I/Sensors(16652): sendDelay --- 200000000
    08-08 09:39:20.270: D/SensorManager(16652): JNI - sendDelay
    08-08 09:39:20.270: I/SensorManager(16652): Set normal delay = true
    08-08 09:39:20.275: W/IInputConnectionWrapper(16652): showStatusIcon on inactive InputConnection
    08-08 09:39:20.295: D/SensorManager(16652): registerListener :: handle = 0  name= LSM330DLC 3-axis Accelerometer delay= 200000 Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41c9bd90
    08-08 09:39:20.455: W/IInputConnectionWrapper(16652): getSelectedText on inactive InputConnection
    08-08 09:39:20.460: W/IInputConnectionWrapper(16652): setComposingText on inactive InputConnection
    08-08 09:39:20.460: W/IInputConnectionWrapper(16652): getExtractedText on inactive InputConnection
    08-08 09:39:30.525: D/SensorManager(16652): unregisterListener::  Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41c9bd90
    08-08 09:39:30.525: D/Sensors(16652): Remain listener = Sending .. normal delay 200ms
    08-08 09:39:30.525: I/Sensors(16652): sendDelay --- 200000000
    08-08 09:39:30.525: D/SensorManager(16652): JNI - sendDelay
    08-08 09:39:30.525: I/SensorManager(16652): Set normal delay = true
    08-08 09:39:30.605: W/IInputConnectionWrapper(16652): getSelectedText on inactive InputConnection
    08-08 09:39:30.605: W/IInputConnectionWrapper(16652): setComposingText on inactive InputConnection
    08-08 09:39:30.605: W/IInputConnectionWrapper(16652): getExtractedText on inactive InputConnection
    08-08 09:39:32.485: D/SensorManager(16652): registerListener :: handle = 0  name= LSM330DLC 3-axis Accelerometer delay= 200000 Listener= android.view.OrientationEventListener$SensorEventListenerImpl@41c9bd90
    08-08 09:39:36.570: W/dalvikvm(16652): Exception Landroid/os/NetworkOnMainThreadException; thrown while initializing Ljcifs/netbios/NbtAddress;
    08-08 09:39:36.570: W/dalvikvm(16652): Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Ljcifs/UniAddress;
    08-08 09:39:36.570: D/AndroidRuntime(16652): Shutting down VM
    08-08 09:39:36.570: W/dalvikvm(16652): threadid=1: thread exiting with uncaught exception (group=0x4101d2a0)
    08-08 09:39:36.600: E/AndroidRuntime(16652): FATAL EXCEPTION: main
    08-08 09:39:36.600: E/AndroidRuntime(16652): java.lang.ExceptionInInitializerError
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at jcifs.smb.SmbFile.getFirstAddress(SmbFile.java:864)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at jcifs.smb.SmbFile.connect(SmbFile.java:951)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at jcifs.smb.SmbFile.connect0(SmbFile.java:880)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at jcifs.smb.SmbFile.open0(SmbFile.java:972)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at jcifs.smb.SmbFile.open(SmbFile.java:1006)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:142)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:97)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:67)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at pack.qcm_demo.MainActivity.NextClick(MainActivity.java:162)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at pack.qcm_demo.MainActivity$10.onClick(MainActivity.java:137)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at android.view.View.performClick(View.java:4211)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at android.view.View$PerformClick.run(View.java:17267)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at android.os.Handler.handleCallback(Handler.java:615)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at android.os.Handler.dispatchMessage(Handler.java:92)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at android.os.Looper.loop(Looper.java:137)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at android.app.ActivityThread.main(ActivityThread.java:4898)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at java.lang.reflect.Method.invokeNative(Native Method)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at java.lang.reflect.Method.invoke(Method.java:511)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at dalvik.system.NativeStart.main(Native Method)
    08-08 09:39:36.600: E/AndroidRuntime(16652): Caused by: java.lang.ExceptionInInitializerError
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at jcifs.UniAddress.<clinit>(UniAddress.java:62)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	... 21 more
    08-08 09:39:36.600: E/AndroidRuntime(16652): Caused by: android.os.NetworkOnMainThreadException
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at java.net.InetAddress.getLocalHost(InetAddress.java:365)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	at jcifs.netbios.NbtAddress.<clinit>(NbtAddress.java:187)
    08-08 09:39:36.600: E/AndroidRuntime(16652): 	... 22 more
    08-08 09:39:52.665: I/Process(16652): Sending signal. PID: 16652 SIG: 9

    J'ai effectué des recherches sur le web et en particulier dans ce forum. J'ai trouvé des quelques infos sur les "smbfiles" mais je ne trouve pas quelles erreurs j'ai pu commettre ( il y en a sûrement.... )
    J'ai également essayé avec un pc sous windows XP même soucis.
    Le smartphone ainsi que le PC sous simplement reliés sur le même réseau WIFI, aucune configuration particulière.
    Si vous avez une piste de solution, cela m'aiderait énormément.
    D'avance un grand merci pour votre aide.

    Jean-François
    (qui vous adresse un peu de soleil de la Réunion , je crois que vous êtes sous les orages.)

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Le problème de vient pas de là.
    Il s'agit de l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NetworkOnMainThreadException
    Si tu recherches sur ce forum ou sur le site de développement Android, tu comprendra vite comment contourner le problème.
    En gros, tu essaie de communiquer avec un serveur distant (par le biais d'internet) en utilisant le Thread principal, celui là même qui est responsable de l'affichage graphique. Etant donné que Android ne permet pas d'effectuer ce genre d'opérations sur le thread graphique, ça plante.
    Les solutions sont les suivantes : Thread/Handler, Service, AsyncTask, ...

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Ingénieur après-vente
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour Simon,

    Merci pour ces précieuses infos.
    Je continue mon exploration dans le monde de Java....
    Je déclare mon soucis comme résolus. (j'espère... )

    Un grand merci et bonne journée.

    Jean-François

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/05/2008, 15h03
  2. Applet pour upload de fichiers sur un serveur via WebDav
    Par melvar dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 08/04/2008, 15h37
  3. telechargement fichier sur le net via vb 6
    Par milkeshake dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 18/05/2007, 23h02
  4. Réponses: 3
    Dernier message: 16/11/2006, 12h54
  5. [VBA] Création fichier Word par Access via VBA
    Par MadSquirrel dans le forum VBA Word
    Réponses: 2
    Dernier message: 24/09/2006, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo