Экспорт данных SQLite в CSV в Android Studio - PullRequest
0 голосов
/ 30 мая 2020

Я пытаюсь экспортировать данные CSV, хранящиеся во внутреннем хранилище, с помощью электронной почты. to После предоставления разрешений это работает на эмуляторе и некоторых старых телефонах. Не на новых моделях телефонов. Будем признательны за любые предложения о том, как решить эту проблему. Фрагмент кода для класса ниже. Пока пропускается, а на новых телефонах отображается «улов». на некоторых старых моделях телефонов это работает.

public void exportDB() {
    Toast.makeText(MainActivity.this, "Entry", Toast.LENGTH_SHORT).show();
    SqliteDatabase dbhelper = new SqliteDatabase(getApplicationContext());
    File exportDir = new File(Environment.getExternalStorageDirectory(), "");
    if (!exportDir.exists())
    {
    exportDir.mkdirs();
}
 File file = new File(exportDir, "data.csv");
    try
    {
        Toast.makeText(MainActivity.this, "Outer", 
        Toast.LENGTH_SHORT).show();
        file.createNewFile();
        CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
        SQLiteDatabase db = dbhelper.getReadableDatabase();
        Cursor cursor = db.rawQuery("SELECT * FROM customers",null);
        csvWrite.writeNext(cursor.getColumnNames());
        while(cursor.moveToNext())
        {
            //Which column you want to export // file located in storage
            String arrStr[] ={cursor.getString(0),cursor.getString(1), 
            cursor.getString(2)};
            csvWrite.writeNext(arrStr);

            // emailing
            String filename = "data.csv";
            File filelocation = new 
            File(Environment.getExternalStorageDirectory().getAbsolutePath(), 
            filename);
            Uri path = Uri.fromFile(filelocation);
            Intent emailIntent = new Intent(Intent.ACTION_SEND);
            emailIntent .setType("txt/csv");
            emailIntent .putExtra(Intent.EXTRA_STREAM, path);
            emailIntent .putExtra(Intent.EXTRA_SUBJECT, "Subject");
            startActivity(Intent.createChooser(emailIntent , "Send 
             email..."));
            Toast.makeText(MainActivity.this, "Sending...email", 
            Toast.LENGTH_SHORT).show();


            }
           csvWrite.close();
           cursor.close();
            }
           catch(Exception sqlEx)
           {
           Log.e("MainActivity", sqlEx.getMessage(), sqlEx);
           Toast.makeText(MainActivity.this, "catch", 
           Toast.LENGTH_SHORT).show();
             }
           }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...