我是Android的新手并且在尝试这种情况时头疼:
我正在创建数据库的备份,它存在于以下路径中:
String dbPath = "data/data/" + c.getPackageName() + "/databases/" + DatabaseHelper.DATABASE_NAME;
我正在使用自定义扩展将当前数据库文件复制到同一目录中的另一个目录,如下所示:
String backupName = "data/data/" + a.getBaseContext().getPackageName() + "/databases/MyDB_" + MyTools.GenerateDateNow() + ".mydb";
然后我使用循环器视图和适配器循环文件夹内的文件,并获取我自定义创建的文件
我还在回收站视图中有一个按钮,可以恢复创建的备份。
到目前为止,一切都很顺利,工作正常。我接下来要做的是问题:
我需要与其他人共享这些备份(如果用户决定),为此,我使用Intents将用户选择的备份文件发送给所有使用文件的应用程序(gmail,whatsapp,... ):
holder.btnShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
Intent myIntent = new Intent(Intent.ACTION_SEND);
myIntent.setType("file/*");
Uri fileUri = Uri.fromFile(file);
myIntent.putExtra(Intent.EXTRA_STREAM, fileUri);
Intent chooserIntent = Intent.createChooser(myIntent, "Share With...");
chooserIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
chooserIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
chooserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
v.getContext().startActivity(chooserIntent);
} catch (Exception e) {
e.printStackTrace();
}
}
});
选择的文件将被选中并发送到chooserIntent,但似乎chooserIntent没有访问它的权限,我想这很简单,我缺少