2013-11-15 53 views
2

我正在开发一个共享APK文件的应用程序。为此,我使用Intent Chooser来显示相关/支持的应用程序。在这种情况下,如果我选择Gmail应用程序,现在可以在撰写&时看到附件,但未收到任何附件。但是当我通过蓝牙传输时,它工作正常。我不知道我的代码有什么问题无法接收邮件中的附件

我的实现就像从URI发送字节内容一样。请帮我解决这个问题。

private void sendApk(String apkSourcePath2) { 

    Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
    sharingIntent.setType("application/*"); 

    String shareBody = "Please find the attached APK file..."; 
    String subject = "From EasyShare"; 
    sharingIntent.putExtra(Intent.EXTRA_SUBJECT, subject); 
    sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(apkSourcePath2))); 
    sharingIntent.putExtra(Intent.EXTRA_TEXT, shareBody); 
    startActivity(Intent.createChooser(sharingIntent, "Send/Share via..")); 

} 

这里apkSourcepath2指向Packageinfo.sourceDir

,也是我的问题是,没有Gmail无法从数据/ app文件夹访问文件?

任何建议来实现这个模块?

+0

给我们提供apkSourcePath2的完整值。 – Snicolas

+0

apkSourcePath2将会是这样的“data/app/ .apk” – saravana

回答

3

全部取决于apkSourcePath2的值。

如果它位于您的应用沙箱内,则无法通过任何其他应用访问它。你可以为此使用内容提供者。

+0

apkSourcePath2将会像这个data/app/ .apk – saravana

+0

这就是你的沙箱。使用ContentProvider共享对其他应用程序的访问权限:http://stackoverflow.com/q/12170386/693752或将apk放在其他位置,如SD卡,其中所有应用程序都可以读取和写入。 – Snicolas

+0

我以为我的应用程序会从上述路径中读取文件(data/app/ .apk,我也应该将apk文件复制到其他位置? – saravana