将数据从TinyDB导出到CSV App Inventor

时间:2012-12-04 12:51:55

标签: java android export-to-csv sd-card app-inventor

我希望有人可以帮助我,或者至少给我一些想法。

我正在为工程行业开发App Inventor应用程序。该应用程序基本完成,但App Inventor不支持SD卡的I / O.

现在我需要能够以某种方式将应用程序中的数据以某种方式从PC上获取(即仅通过USB或WIFI)(无法使用蓝牙)

我在Eclipse中编写了一个简短的Java应用程序,可以将一些数据保存到SD卡中,但我不知道如何从App Inventor中启动应用程序。

关于如何在不必在Eclipse中重写整个应用程序来实现这一目标的任何想法?

以下是需要启动的Eclipse应用程序的代码:

    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;    
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用Activity Starter从App Inventor中启动其他应用。
请参阅有关Using the Activity Starter here的更多信息。

  

启动任意应用

     

如果您愿意,可以使用活动入门者开始任何活动   知道包名称类名称,或者相应的意图。一些   开发人员记录这些意图以获得其他Android的好处   开发人员。有关使用意图启动其他应用程序的提示,请参阅   Android API文档或搜索Android开发者论坛。

     

如果手机上有应用,但您没有源代码,   你可能仍然可以找出包名和类名   (有时是意图)通过启动应用程序并检查   Android系统日志,如上所示。

更新:您同时可以找到一个小教程“如何使用调用Java应用程序的Activity Starter将文本文件保存到SD卡”here