0
我想通過谷歌驅動器共享文件。所以當我點擊我的應用程序中的按鈕時,它應該通過我的手機中的谷歌驅動器應用程序上傳文件,而無需用戶選擇應用程序。下面是我迄今爲止所做的應用程序的代碼。通過其他應用程序共享文件
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button sharingButton = (Button)findViewById(R.id.button1);
sharingButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
shareIt();
}
});
}
private void shareIt() {
//sharing implementation here
Intent i=new Intent(android.content.Intent.ACTION_SEND);
i.setType("application/pdf");
//i.putExtra(android.content.Intent.EXTRA_SUBJECT,"Subject test");
//i.putExtra(android.content.Intent.EXTRA_TEXT, "extra text that you want to put");
Uri uri = Uri.fromFile(getFileStreamPath("/storage/sdcard0/tweek/pdf.png"));
i.putExtra(Intent.EXTRA_STREAM,uri);
startActivity(Intent.createChooser(i,"Share via"));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
所以,當我點擊按鈕它顯示我以下錯誤。
08-02 13:11:40.988: E/AndroidRuntime(25569): FATAL EXCEPTION: main
08-02 13:11:40.988: E/AndroidRuntime(25569): java.lang.IllegalArgumentException: File /storage/sdcard0/tweek/pdf.png contains a path separator
08-02 13:11:40.988: E/AndroidRuntime(25569): at android.app.ContextImpl.makeFilename(ContextImpl.java:1921)
08-02 13:11:40.988: E/AndroidRuntime(25569): at android.app.ContextImpl.getFileStreamPath(ContextImpl.java:945)
08-02 13:11:40.988: E/AndroidRuntime(25569): at android.content.ContextWrapper.getFileStreamPath(ContextWrapper.java:182)
08-02 13:11:40.988: E/AndroidRuntime(25569): at com.example.shareapp.MainActivity.shareIt(MainActivity.java:38)
08-02 13:11:40.988: E/AndroidRuntime(25569): at com.example.shareapp.MainActivity.access$0(MainActivity.java:32)
有人可以請解釋我。我經歷了很多文檔,但我感到困惑。 在此先感謝。
不,我仍然得到SA m錯誤。 – Vyshakh
好吧,它向我展示了分享選項,當我選擇谷歌驅動器時,它顯示的是「上傳一個文件」,但在驅動器中沒有任何東西。 – Vyshakh
然後檢查您的驅動器設置。爲什麼你使用sdcard0而不是sdcard? – AAnkit