在模拟器上将联系人作为vcard读取

时间:2012-11-21 22:03:51

标签: android

这是剪切的代码(我试图最小化,只是为了显示问题。这就是为什么Uri是硬编码的。当用户在联系人上“共享”时,真实代码从Contacts应用程序接收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)您是否知道此问题的解决方法?

0 个答案:

没有答案