1

这是代码片段(我试图将其最小化,只是为了显示问题。这就是 Uri 被硬编码的原因。当用户对联系人执行“共享”时,真实代码从联系人应用程序接收 Uri)。

    Uri uri = Uri.parse("content://com.android.contacts/contacts/as_vcard/0r1-47532F494753492F475349532F492F53492F3D533B49393B3D47532F");
    try {

        InputStream fis = getContentResolver().openInputStream(uri);

        byte[] buffer = new byte[1024];
        fis.read(buffer);
    } catch (Exception e)
    {
        Log.d("zzz", e.getMessage());
    }

此类代码仅在模拟器上的 fis.read 操作上抛出“java.io.IOException: read failed: EINVAL (Invalid argument)”(并且在真实设备上工作正常)。我在 Android 4.0.3 和 4.1.2 模拟器上试过(都失败了)

我看到了一个类似的问题(这个问题的描述): Android read failed exception when trying to read vCard contact data

还有一个错误,可能相关(或不相关): http ://code.google.com/p/android/issues/detail?id=26480

我在模拟器上运行自动化测试,这个问题阻止我运行几个测试。

两个问题:

a) 你见过这种行为吗?

b)您知道此问题的任何解决方法吗?

4

0 回答 0