0

我正在尝试实现 PICK 意图过滤器,到目前为止,我已经将它们放在上下文菜单中,但是我该如何回复以这种方式启动应用程序的人呢?

可以说我有活动:

    <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 中的“分享照片”,但使用图库应用程序选择图像,那么我希望我的应用程序可以正常工作。

我做错了什么?

4

2 回答 2

0

我会说他们搞砸了他们的实施。Facebook 应用程序不是那么好已经不是什么秘密了。你的代码对我来说似乎没问题(特别是因为它可以与 Gallery 一起使用)。

于 2012-08-12T10:19:21.070 回答
0

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

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

于 2012-08-20T04:28:59.587 回答