Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- as you provide me the code i make two class and run it but it fc..my error is also give below..pls take a look..
- CsvSender class is
- package contactlist.pkg;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.FileWriter;
- import java.io.IOException;
- import android.app.Activity;
- import android.content.Intent;
- import android.database.Cursor;
- import android.net.Uri;
- import android.os.Bundle;
- import android.os.Environment;
- import android.provider.ContactsContract;
- import android.provider.ContactsContract.CommonDataKinds.Phone;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.Toast;
- public class CsvSender extends Activity {
- private boolean csv_status = false;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- createCSV();
- if(csv_status)
- exportCSV();
- }
- private void createCSV() {
- CSVWriter writer = null;
- try {
- writer = new CSVWriter(new FileWriter(Environment.getExternalStorageDirectory().getAbsolutePath() + "/my_test_contact.csv"));
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- String displayName;
- String number;
- long _id;
- String columns[] = new String[]{ ContactsContract.Contacts._ID,
- ContactsContract.Contacts.DISPLAY_NAME };
- writer.writeColumnNames(); // Write column header
- Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
- columns,
- null,
- null,
- ContactsContract.Data.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
- startManagingCursor(cursor);
- if(cursor.moveToFirst()) {
- do {
- _id = Long.parseLong(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)));
- displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)).trim();
- number = getPrimaryNumber(_id);
- writer.writeNext((displayName + "/" + number).split("/"));
- } while(cursor.moveToNext());
- csv_status = true;
- } else {
- csv_status = false;
- }
- try {
- if(writer != null)
- writer.close();
- } catch (IOException e) {
- Log.w("Test", e.toString());
- }
- }// Method close.
- private void exportCSV() {
- if(csv_status == true) {
- //CSV file is created so we need to Export that ...
- final File CSVFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/my_test_contact.csv");
- //Log.i("SEND EMAIL TESTING", "Email sending");
- Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
- emailIntent.setType("text/csv");
- emailIntent .putExtra(android.content.Intent.EXTRA_SUBJECT, "Test contacts ");
- emailIntent .putExtra(android.content.Intent.EXTRA_TEXT, "\n\nAdroid developer\n Pankaj");
- emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + CSVFile.getAbsolutePath()));
- emailIntent.setType("message/rfc822"); // Shows all application that supports SEND activity
- try {
- startActivity(Intent.createChooser(emailIntent, "Send mail..."));
- } catch (android.content.ActivityNotFoundException ex) {
- Toast.makeText(getApplicationContext(), "Email client : " + ex.toString(), Toast.LENGTH_SHORT);
- }
- } else {
- Toast.makeText(getApplicationContext(), "Information not available to create CSV.", Toast.LENGTH_SHORT).show();
- }
- }
- /**
- * Get primary Number of requested id.
- *
- * @return string value of primary number.
- */
- private String getPrimaryNumber(long _id) {
- String primaryNumber = null;
- try {
- Cursor cursor = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
- new String[]{Phone.NUMBER, Phone.TYPE},
- ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ _id, // We need to add more selection for phone type
- null,
- null);
- if(cursor != null || cursor.getCount() > 0) {
- while(cursor.moveToNext()){
- switch(cursor.getInt(cursor.getColumnIndex(Phone.TYPE))){
- case Phone.TYPE_MOBILE :
- primaryNumber = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));
- break;
- case Phone.TYPE_HOME :
- primaryNumber = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));
- break;
- case Phone.TYPE_WORK :
- primaryNumber = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));
- break;
- case Phone.TYPE_OTHER :
- }
- if(primaryNumber != null)
- break;
- }
- }
- if(!cursor.isClosed() || cursor != null) {
- cursor.deactivate();
- cursor.close();
- }
- } finally {
- }
- return primaryNumber;
- }
- }
- and CSVWriter class is
- package contactlist.pkg;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.io.Writer;
- public class CSVWriter {
- private PrintWriter pw;
- private char separator;
- private char quotechar;
- private char escapechar;
- private String lineEnd;
- /** The character used for escaping quotes. */
- public static final char DEFAULT_ESCAPE_CHARACTER = '"';
- /** The default separator to use if none is supplied to the constructor. */
- public static final char DEFAULT_SEPARATOR = ',';
- /**
- * The default quote character to use if none is supplied to the
- * constructor.
- */
- public static final char DEFAULT_QUOTE_CHARACTER = '"';
- /** The quote constant to use when you wish to suppress all quoting. */
- public static final char NO_QUOTE_CHARACTER = '\u0000';
- /** The escape constant to use when you wish to suppress all escaping. */
- public static final char NO_ESCAPE_CHARACTER = '\u0000';
- /** Default line terminator uses platform encoding. */
- public static final String DEFAULT_LINE_END = "\n";
- /** Default column name. */
- public static final String DEFAULT_COLUMN_NAME = "Contact Name,Phone Number,";
- /**
- * Constructs CSVWriter using a comma for the separator.
- *
- * @param writer
- * the writer to an underlying CSV source.
- */
- public CSVWriter(Writer writer) {
- this(writer, DEFAULT_SEPARATOR, DEFAULT_QUOTE_CHARACTER,
- DEFAULT_ESCAPE_CHARACTER, DEFAULT_LINE_END);
- }
- /**
- * Constructs CSVWriter with supplied separator, quote char, escape char and line ending.
- *
- * @param writer
- * the writer to an underlying CSV source.
- * @param separator
- * the delimiter to use for separating entries
- * @param quotechar
- * the character to use for quoted elements
- * @param escapechar
- * the character to use for escaping quotechars or escapechars
- * @param lineEnd
- * the line feed terminator to use
- */
- public CSVWriter(Writer writer, char separator, char quotechar, char escapechar, String lineEnd) {
- this.pw = new PrintWriter(writer);
- this.separator = separator;
- this.quotechar = quotechar;
- this.escapechar = escapechar;
- this.lineEnd = lineEnd;
- }
- /**
- * Writes the next line to the file.
- *
- * @param nextLine
- * a string array with each comma-separated element as a separate
- * entry.
- */
- public void writeNext(String[] nextLine) {
- if (nextLine == null)
- return;
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < nextLine.length; i++) {
- if (i != 0) {
- sb.append(separator);
- }
- String nextElement = nextLine[i];
- if (nextElement == null)
- continue;
- if (quotechar != NO_QUOTE_CHARACTER)
- sb.append(quotechar);
- for (int j = 0; j < nextElement.length(); j++) {
- char nextChar = nextElement.charAt(j);
- if (escapechar != NO_ESCAPE_CHARACTER && nextChar == quotechar) {
- sb.append(escapechar).append(nextChar);
- } else if (escapechar != NO_ESCAPE_CHARACTER && nextChar == escapechar) {
- sb.append(escapechar).append(nextChar);
- } else {
- sb.append(nextChar);
- }
- }
- if (quotechar != NO_QUOTE_CHARACTER)
- sb.append(quotechar);
- }
- sb.append(lineEnd);
- pw.write(sb.toString());
- }
- public void writeColumnNames() {
- writeNext(DEFAULT_COLUMN_NAME.split(","));
- }
- /**
- * Flush underlying stream to writer.
- *
- * @throws IOException if bad things happen
- */
- public void flush() throws IOException {
- pw.flush();
- }
- /**
- * Close the underlying stream writer flushing any buffered content.
- *
- * @throws IOException if bad things happen
- *
- */
- public void close() throws IOException {
- pw.flush();
- pw.close();
- }
- }
- 07-29 15:35:51.742: ERROR/AndroidRuntime(8062): Caused by: java.lang.NullPointerException
- 07-29 15:35:51.742: ERROR/AndroidRuntime(8062): at contactlist.pkg.CsvSender.createCSV(CsvSender.java:47)
- 07-29 15:35:51.742: ERROR/AndroidRuntime(8062): at contactlist.pkg.CsvSender.onCreate(CsvSender.java:30)
- 07-29 15:35:51.742: ERROR/AndroidRuntime(8062): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
- 07-29 15:35:51.742: ERROR/AndroidRuntime(8062): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement