什么归来Facebook“分享形象”PICKER意图(与画廊相同)?

时间:2012-08-12 10:09:08

标签: android android-intent

我正在尝试实现PICK intent-filter,到目前为止我已经在上下文菜单中找到了它们,但是我如何回复那些以这种方式启动应用程序的人呢?

让我说我有活动:

    <activity
        android:name="ListActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.PICK" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="image/*" />
        </intent-filter>
    </activity>

现在我通过Facebook开始这项活动,分享照片并选择我自己的应用程序来获取它,我有以下代码:

File f = new File(Environment.getExternalStorageDirectory(), "image.jpg");
Uri uri = Uri.fromFile(f);
if(f.exists()) System.out.println("exists");
Intent data = new Intent();
data.setData(uri);
setResult(RESULT_OK, data);
finish();

然而Facebook应用程序中没有任何反应(我正在测试我的实现)。如果我再次使用Facebook的“分享照片”,但使用Gallery应用程序选择图像,那就像我希望我的应用程序一样有效。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

我会说他们搞砸了他们这方面的实施。 Facebook应用程序不是那么好,这已经不是什么秘密了...... 你的代码对我来说似乎没问题(特别是因为它适用于Gallery)。

答案 1 :(得分:0)

在仔细研究之后,我发现问题出在了Uri的计划中。您无法将带文件方案(“file:// ...”)的Uri传递给Facebook应用程序。它什么都不做。相反,如果您使用content-scheme(“content:// ...”)来处理相同的图像,那么它可以很好地工作。

如何在这两者之间进行转换是一个单独的问题。