2015-04-22 1 views
0

Tout d'abord basé sur d'autres réponses voici quelques choses que j'ai déjà fait.Android JCIFS écrire le fichier dans le dossier réseau partagé (Impossible de se connecter au serveur)

1- Ajout des autorisations appropriées à mon manifeste

2- Utilisé une sous-classe AsyncTask pour gérer le processus

3- Juste par curiosité copier exactement le même code dans un projet java et non Adroid fonctionne bien. Mais sur l'émulateur retourne un 'n'a pas pu se connecter au serveur'

public class NetworkUploader extends AsyncTask<String,Void,String> { 
     private final String TAG = "SSTv1.0"; 

@Override 
protected String doInBackground(String... params) { 


     NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("","tom.smith", "abc123456"); 
     String sharepath = "smb://sed/Production/Test-Android/test.txt"; 
     try{ 
      String text = "Hello There"; 
      SmbFile sFile = new SmbFile(sharepath, auth); 
      SmbFileOutputStream out = new SmbFileOutputStream(sFile); 
     out.write(text.getBytes()); 
     out.close(); 
     }catch(Exception e){ 
      //e.printStackTrace(); 
      Log.d(TAG,e.getMessage()); 

     } 

    return null; 

} 



    @Override 
protected void onPostExecute(String result) { 
    //Do something with result 

} 

Manifest

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="au.net.toms.sst" > 
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-feature android:name="android.hardware.camera" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

apprécient vraiment des commentaires

Répondre

0

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null,"tom.smith", "abc123456");

changement t La chaîne vide est nulle.