小编fel*_*lix的帖子

Android:通过短信,G +,Twitter,Facebook可靠地分享资产中的图像?

我正在尝试在我的Android应用程序中创建一个按钮,允许用户使用他们选择的社交媒体网络共享图像.图像文件存储在应用程序的assets文件夹中.

我的计划是实现自定义ContentProvider以提供对图像的外部访问,然后发送TYPE_SEND意图,指定我的内容提供者中的图像的uri.

我这样做了,它适用于Google+和GMail,但对于其他服务,它失败了.最困难的部分是找到我应该从ContentProvider的query()方法返回的信息.某些应用会指定投影(例如,Google +要求_id和_data),而某些应用会将null作为投影传递.即使指定了投影,我也不知道列中预期的实际数据(类型).我找不到这方面的文件.

我还实现了ContentProvider的openAssetFile方法,并且这个方法被调用(两次由Google+!),但随后也不可避免地会调用查询方法.只有查询方法的结果才算数.

我出错的任何想法?我应该从查询方法返回什么?

代码如下:

// my intent

Intent i = new Intent(android.content.Intent.ACTION_SEND);
i.setType("image/jpeg");
Uri uri = Uri.parse("content://com.me.provider/ic_launcher.jpg");
i.putExtra(Intent.EXTRA_STREAM, uri);       
i.putExtra(android.content.Intent.EXTRA_TEXT, text);
startActivity(Intent.createChooser(i, "Share via"));

// my custom content provider

public class ImageProvider extends ContentProvider
{
private AssetManager _assetManager;

public static final Uri CONTENT_URI = Uri.parse("content://com.me.provider");

// not called
@Override
public int delete(Uri arg0, String arg1, String[] arg2) 
{
    return 0;
}

// not called
@Override
public String getType(Uri uri) 
{
    return "image/jpeg";
}

// not called
@Override …
Run Code Online (Sandbox Code Playgroud)

android share android-intent

5
推荐指数
1
解决办法
1443
查看次数

标签 统计

android ×1

android-intent ×1

share ×1