1

私は誰かが私を助けてくれるか、少なくとも私にいくつかのアイデアを与えてくれることを望んでいました。

私はエンジニアリング業界向けのAppInventorアプリを開発しています。アプリは基本的に完成していますが、AppInventorはSDカードへのI/Oをサポートしていません。

今、私はインターネット接続を使用せずに(つまり、USBまたはWIFI経由でのみ)アプリからPCにデータを取得できる必要があります(Bluetoothを使用することはできません)

一部のデータをSDカードに保存できる短いJavaアプリをEclipseで作成しましたが、AppInventor内からアプリを起動する方法がわかりません。

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

1 に答える 1

1

アクティビティスターターを使用して、AppInventor内から他のアプリを起動できます。アクティビティスターターの使用
に関する詳細については、こちらもご覧ください。

任意のアプリを起動する

パッケージ名クラス名、または適切なインテントがわかっている場合は、アクティビティスターターを使用してアクティビティを開始できます。一部の開発者は、他のAndroid開発者の利益のためにこれらの意図を文書化します。インテントを使用して他のアプリを起動するためのヒントについては、Android APIのドキュメントを参照するか、Androidデベロッパーフォーラムを検索してください。

携帯電話にアプリがあり、ソースコードがない場合でも、示されているように、アプリを起動してAndroidシステムログを調べることで、パッケージ名とクラス名(場合によってはインテント)を把握できる可能性があります。その上。

更新:一方、「Javaアプリを呼び出すアクティビティスターターを使用してテキストファイルをSDカードに保存する方法」という小さなチュートリアルをここで見つけることができます。

于 2012-12-04T14:08:37.620 に答える