La partie android envoie un fichier très court sur mon serveur ftp. La partie arduino récupere ce fichier.
L'appli android fonctionne très bien, j'i eu plus de mal avec le programme arduino.
Là ou ca se gâte, c'est lorsque je compile mon programme Unity en APK, ca ne fonctionne plus, pas de message d'erreur mais le fichier ne part pas alors que sous Windows c'est ok.
J'ai d'abord pensé à un probleme de permission mais apparemment, les permissions network et storage sont déja activées.
Voici le source
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
using System.IO;
using System.Net;
using UnityEditor;
using System.Text;
public class GetAndSetText : MonoBehaviour
{
public InputField message;
public Text fText;
void Start()
{
}
public void SendText()
{
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://xxxxxxxxx.net/message.txt");
request.Method = WebRequestMethods.Ftp.UploadFile;
// This example assumes the FTP site uses anonymous logon.
request.Credentials = new NetworkCredential("monId", "Monpass");
// Copy the contents of the file to the request stream.
byte[] fileContents;
using (StreamReader sourceStream = new StreamReader("message.txt"))
{
fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
}
request.ContentLength = fileContents.Length;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(fileContents, 0, fileContents.Length);
}
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
//Console.WriteLine($"Upload File Complete, status {response.StatusDescription}");
}
}
public void setGet()
{
string path = Application.persistentDataPath;
System.IO.File.WriteAllText(path+"/message.txt", message.text);
System.Threading.Thread.Sleep(1000);
SendText();
string msg = "Message envoyé:" ;
fText.text = msg;
}
}