QR扫描到CSV,然后发送到电子邮件

时间:2015-11-12 21:39:45

标签: java export-to-csv

我正在尝试构建一个应用程序,它将扫描qr代码,将它们写入csv,然后通过电子邮件发送到预定义的地址。

此时我只是想从我的活动中弄错。任何援助将不胜感激。感谢

package com.example.dronson.theporterapplication;

import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.content.Intent;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
import android.app.Activity;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;

import android.util.Log;





public class MainActivity extends Activity implements OnClickListener{

    private Button scanBtn;
    private TextView formatTxt, contentTxt;
    private Button emailBtn;

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

        emailBtn = (Button) findViewById(R.id.email_button);

        scanBtn = (Button) findViewById(R.id.scan_button);
        formatTxt = (TextView) findViewById(R.id.scan_format);
        contentTxt = (TextView) findViewById(R.id.scan_content);
        scanBtn.setOnClickListener(this);

        emailBtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onActivityResult(int requestCode, int resultCode, Intent intent) {
                IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);

                if (scanningResult != null) {
                    String scanContent = scanningResult.getContents();
                    String scanFormat = scanningResult.getFormatName();
                    formatTxt.setText(scanFormat);
                    contentTxt.setText(scanContent);

                    Intent i = new Intent(Intent.ACTION_SEND);
                    i.setType("plain/text");
                    File data = null;
                    try {
                        Date dateVal = new Date();
                        String filename = dateVal.toString();
                        data = File.createTempFile("Report", ".csv");
                        FileWriter out = (FileWriter) GenerateCsv.generateCsvFile(data, "Name,Data1");
                        i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(data));
                        i.putExtra(Intent.EXTRA_EMAIL, "dronson@theporterco.com");
                        i.putExtra(Intent.EXTRA_SUBJECT, scanContent);
                        i.putExtra(Intent.EXTRA_TEXT, scanFormat);
                        startActivity(Intent.createChooser(i, "E-mail"));

                    } catch (IOException e) {
                        e.printStackTrace();
                    }


                } else {
                    Toast toast = Toast.makeText(getApplicationContext(),
                            "No scan data received!", Toast.LENGTH_SHORT);
                    toast.show();
                }
                //retrieve scan result
            }
        });

        public class GenerateCsv {
            public static FileWriter generateCsvFile(File sFileName, String fileContent) {
                FileWriter writer = null;

                try {
                    writer = new FileWriter(sFileName);
                    writer.append(fileContent);
                    writer.flush();

                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } finally {
                    try {
                        writer.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                return writer;
            }
        }
        @Override
        public void onClick (View v){
            //respond to clicks

            if (v.getId() == R.id.scan_button) {
                //scan
                IntentIntegrator scanIntegrator = new IntentIntegrator(this);
                scanIntegrator.initiateScan();
            }
        }

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


        @Override
        public boolean onOptionsItemSelected (MenuItem item){
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();

            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
            }
        }
    }
}

0 个答案:

没有答案
相关问题