从我的应用程序内部下载 Android java txt 文件

问题描述

在我的 Android Java 应用程序中,我创建了一个 txt 文件,我可以共享它。但是我想在用户单击按钮时这样做,开始下载我的应用程序中的那个 txt 文件。我怎样才能做到这一点。 谢谢

public void backupPhone(){
    Calendar calendar = Calendar.getInstance();
    int day = calendar.get(Calendar.DAY_OF_YEAR);
    int month = calendar.get(Calendar.MONTH)+1;
    int year = calendar.get(Calendar.YEAR);

    String fileName = "StockProgramDatas-"+day+"-"+month+"-"+year+".txt";
    //String fileName = "StockProgramDatas.txt";
    String filePath = "StockDatas";

    if (!isExternalStorageAvaibleForRW()){
        Toast.makeText(MainActivity.this,getResources().getString(R.string.main_activity_backup_permission),Toast.LENGTH_SHORT).show();
    }

    try {

        File myExternalFile = new File(getExternalFilesDir(filePath),fileName);
        FileOutputStream fos = new FileOutputStream(myExternalFile);
        OutputStreamWriter writer = new OutputStreamWriter(fos);
        for (Products p: productsArrayList) {
            writer.write(p.getProduct_name()+"-"+p.getProduct_brand()+"-"+
                    p.getProduct_color()+"-"+p.getProduct_amount()+"-"+p.getProduct_sold()+"\n");
        }
        writer.close();


        Intent intentShare = new Intent(Intent.ACTION_SEND);
        intentShare.putExtra(Intent.EXTRA_TEXT,"Database Backup "+day+"/"+
                month+"/"+year);
        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.N){
            Uri uri = FileProvider.getUriForFile(MainActivity.this,"com.nczsoftware.simplestockprogram",myExternalFile);
            intentShare.putExtra(Intent.EXTRA_STREAM,uri);
        }else {
            intentShare.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(myExternalFile));
        }
        intentShare.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intentShare.setType("txt/*");
        startActivity(Intent.createChooser(intentShare,getResources().getString(R.string.main_activity_backup_share)));

    }catch (Exception e){
        Log.e("hata",String.valueOf(e));
        Toast.makeText(MainActivity.this,getResources().getString(R.string.main_activity_backup_permission_file)+e,Toast.LENGTH_LONG).show();
    }


}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)