我正在使用Android,我正在学习本教程:
https://github.com/OneDrive/onedrive-picker-android/blob/master/README.md
public void uploadToOneDrive(String content,Context context){
final String filename = "Temp.xml";
final File f = new File(context.getFilesDir(), filename);
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput("Temp.xml", Context.MODE_PRIVATE));
outputStreamWriter.write(content);
outputStreamWriter.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
System.out.println("File " + f.toString());
mSaver = Saver.createSaver(ONEDRIVE_APP_ID);
mSaver.startSaving((Activity)context,filename, Uri.fromFile(f));
}
这是我返回ERROR TYPE NoFileSpecified的方法。我试图创建一个新的临时文件,将一个字符串放入其中,然后将其删除。
这就是我所说的:
oneDriveUpload.getSaver().handleSave(requestCode, resultCode, data);
05-29 15:03:18.649 10649-10649/david.projectclouds I/System.out: File /data/user/0/david.projectclouds/files/Temp.xml
05-29 15:03:18.702 10649-10649/david.projectclouds I/System.out: URI: file:///data/user/0/david.projectclouds/files/Temp.xml
所以有一个文件,URI是被接受的东西。我输了。
编辑:我尝试过使用内容内容://david.projectclouds.MainActivity/file/diabetix/Temp.xml
但我仍然有同样的错误。
答案 0 :(得分:0)
Android 7.0和SDK显然存在一些问题。所以我只是用自己的意图。
Intent intentOD = new Intent(Intent.ACTION_SEND);
intentOD.setType("text/*");
intentOD.setPackage("com.microsoft.skydrive");
intentOD.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intentOD.putExtra(Intent.EXTRA_STREAM, FileProvider.getUriForFile(getContext(), "david.projectclouds.MainActivity", f));
getContext().startActivity(Intent.createChooser(intentOD, "title"));