2017-06-17 73 views
0

你好我做了序列化的目标文件,我想通过它发送它,messenger,gmail,短信等。我试图用这种方式发送它,这是从保存到发送的代码。我知道没有任何应用程序与此连接。通过其他应用程序发送序列化文件

File file=new File(getFilesDir() + "ShoppingList.ur"); 
       try{ 
        FileOutputStream fileOutputStream =new FileOutputStream(file); 
        ObjectOutputStream data=new ObjectOutputStream(fileOutputStream); 
        data.writeObject(toShare); 
        data.close(); 
        fileOutputStream.close(); 
       }catch(IOException e){ 
        e.printStackTrace(); 
       } 
       uriToSend=Uri.fromFile(file); 
       Intent shareIntent=new Intent(Intent.ACTION_SENDTO); 
       shareIntent.addCategory("*/*"); 
       shareIntent.putExtra(Intent.EXTRA_STREAM,uriToSend); 
       startActivity(Intent.createChooser(shareIntent,getString(R.string.sendTo))); 
       file.delete(); 

回答

0

你好我做了序列化对象的文件,我想通过信使时,Gmail,短信等

Do not assume that this file will be usable anywhere来发送。

我得到了有大约为零的应用程序,有一个<intent-filter><activity>*/*一个<category>没有一个应用程序与此

连接。

另外:

  • ACTION_SENDTO需要Urimailto:smsto:方案,通常情况下)

  • 您还没有指定一个MIME类型文件(例如,application/octet-stream,因为没有官方MIME类型为它)

  • 不要使用字符串连接来组装文件路径—与new File(getFilesDir(), "ShoppingList.ur")

  • 您要使用的文件,即使你有一个例外,那没有创造它

  • 的其他应用程序之前,您将要删除的文件将有机会做任何替代new File(getFilesDir() + "ShoppingList.ur")

  • 其他应用程序不必应用的getFilesDir()任何访问,所以他们将无法与此文件

  • 工作使用Urifile计划(Uri.fromFile())在Android 7.0及更高版本中被禁止用于targetSdkVersion为24或更高版本的应用

相关问题