2012-12-04 6 views
1

J'espérais que quelqu'un pourrait m'aider ou au moins me donner quelques idées.Exporter des données de TinyDB vers CSV App Inventor

Je développe une application App Inventor pour l'industrie de l'ingénierie. L'application est terminée, mais App Inventor ne prend pas en charge les E/S sur la carte SD.

Maintenant, je dois être en mesure d'obtenir les données de l'application à un PC en quelque sorte, sans l'utilisation d'une connexion Internet (à savoir que sur USB ou WIFI) (ne peux pas utiliser Bluetooth soit)

J'ai écrit une courte Application Java dans Eclipse qui peut enregistrer des données sur la carte SD, mais je ne sais pas comment lancer l'application à partir d'App Inventor.

Des idées sur comment je peux accomplir ceci sans avoir à réécrire l'application entière dans Eclipse?

Voici le code de l'application Eclipse qui doit être lancé:

package tlc.savetosd; 

import java.io.File; 
import java.io.FileOutputStream; 
import java.io.OutputStreamWriter; 

import android.app.Activity; 
//import android.content.DialogInterface.OnClickListener; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.view.View.OnClickListener; 

public class Savetosd extends Activity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_savetosd);  

     final EditText txtData = (EditText) findViewById(R.id.edtText); 
     this.getPackageName(); 
     TextView txt = (TextView) findViewById(R.id.textView1); 


     Button btnSave = (Button) findViewById(R.id.btnSave); 
     btnSave.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
     // write on SD card file data in the text box 
     try { 
      File myFile = new File("/sdcard/mysdfile.txt"); 
      myFile.createNewFile(); 
      FileOutputStream fOut = new FileOutputStream(myFile); 
      OutputStreamWriter myOutWriter = 
            new OutputStreamWriter(fOut); 
      myOutWriter.append(txtData.getText()); 
      myOutWriter.close(); 
      fOut.close(); 
      Toast.makeText(getBaseContext(), 
        "Done writing SD 'mysdfile.txt'", 
        Toast.LENGTH_SHORT).show(); 
     } catch (Exception e) { 
      Toast.makeText(getBaseContext(), e.getMessage(), 
        Toast.LENGTH_SHORT).show(); 
     } 
    }// onClick 
    }); 

} 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_savetosd, menu); 
     return true;  
    } 
} 

Répondre

1

vous pouvez lancer d'autres applications à partir d'App Inventor avec le Activity Starter.
Voir le plus de détails sur Using the Activity Starter here.

À partir des applications arbitraires

Vous pouvez utiliser le démarrage d'activité pour démarrer une activité du tout si vous connaissez le nom du package et nom de classe, ou l'intention appropriée. Certains développeurs documentent ces intentions au profit d'autres développeurs Android . Pour obtenir des conseils sur le démarrage d'autres applications à l'aide d'intentions, consultez la documentation de l'API Android ou effectuez une recherche dans les forums de développeurs Android.

Si vous avez une application sur votre téléphone et vous ne disposez pas du code source, vous pourriez encore être en mesure figure le nom du package et le nom de classe (et parfois l'intention) en lançant l'application et l'inspection de la Journal système Android, comme indiqué ci-dessus.

MISE À JOUR: Vous pouvez quant à lui trouver un petit tutoriel « Comment enregistrer un fichier texte sur la carte SD en utilisant le démarrage d'activité appelant une application Java » here

+0

oui, c'est une réponse possible à une partie de ma question. Malheureusement, l'application qui doit être lancée qui écrit sur SD est une application qui a été écrite en éclipse. Je connais le nom du package de l'application, mais je n'arrive pas à le lancer depuis App Inventor. Je vais modifier mon message d'origine pour inclure le code de l'application Eclipse. –

+0

vous avez seulement besoin du ** nom du package ** et du ** nom de la classe ** pour démarrer votre application, vous êtes le développeur, vous devriez donc connaître cette info ... aussi, n'hésitez pas à lire l'activité starter docu (voir les liens fournis) ... le code source de votre application n'aide pas dans ce cas ... – Taifun

+0

Je l'ai compris! J'ai utilisé le mauvais nom de classe. il était censé être tlc.savetosd.savetosd au lieu de simplement enregistrer en sd. maintenant juste pour comprendre comment modifier mon application eclipse pour accepter une chaîne de l'application app inventeur, puis enregistrez-le –

Questions connexes