Intent shareImageIntent = new Intent(Intent.ACTION_SEND);
shareImageIntent.setType("image/*");
shareImageIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(Intent.createChooser(shareImageIntent, "Share image"));
URI的格式如下:
content://my.package.contentprovider/fileName
还是需要为此创建一个数据库并返回游标吗?
更新
所以这在除了短信应用程序(这是我决定先测试的)之外的所有应用程序上都可以工作,但是我希望也支持共享到短信应用程序。
以下是相关的堆栈跟踪:
由:java.lang.IllegalArgumentException引起:查询 content://mypackage.myprovider/someImage.png 返回null结果。在 com.android.mms.ui.UriImage.initFromContentUri(UriImage.java:104) 中的 com.android.mms.ui.UriImage。在 com.android.mms.model.ImageModel.initModelFromUri(ImageModel.java:83) 中初始化Model。 在com.android.mms.model.ImageModel.(ImageModel.java:65)中。在 com.android.mms.data.WorkingMessage.changeMedia(WorkingMessage.java:481) 中更改媒体。 在 com.android.mms.data.WorkingMessage.setAttachment(WorkingMessage.java:375) ...
因此,短信应用程序执行的是查询,而不是像我手机上的所有其他应用程序(包括其他 Google 应用程序)一样直接从 openFile
读取。
有人知道我需要在此返回什么才能正确执行查询吗?我现在要去挖掘 AOSP 了。