尝试将文件上载到OneDrive时出现NoFileSpecified错误

时间:2017-05-29 13:13:34

标签: android onedrive

我正在使用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

但我仍然有同样的错误。

1 个答案:

答案 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"));