Будет ли Save Contact работать в эмуляторе Android? - PullRequest
0 голосов
/ 08 декабря 2011

Я пытаюсь добавить контакт с HTML-страницы Android Webview.Я использовал интерфейс Javascript для вызова функции Android из HTML / Javascript. Ниже приведен код в JSInterface.java, который будет вызываться из Javascript,

    public void addContact(String name, String mobile){
        String msg = "";
        ContentValues cv = new ContentValues();
        cv.put(Contacts.People.NAME, name);
        Uri newPersonUri = Contacts.People.createPersonInMyContactsGroup(mContext.getContentResolver(), cv);
        if (newPersonUri != null) {
            ContentValues mobileValues = new ContentValues();
            Uri mobileUri = Uri.withAppendedPath(newPersonUri,Contacts.People.Phones.CONTENT_DIRECTORY);
            mobileValues.put(Contacts.Phones.NUMBER,mobile);
            mobileValues.put(Contacts.Phones.TYPE,Contacts.Phones.TYPE_MOBILE);
            Uri phoneUpdate = mContext.getContentResolver().insert(mobileUri, mobileValues);
            if (phoneUpdate == null) {
                msg = "Failed to add Contact";
            }
        }
        msg = "Contact added successfully";
            Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();

    }   

Когда я вызываю функцию из javascript приложенияпрерываетсяСледующая трассировка исключений напечатана в LogCat:

12-08 12:59:59.610: I/dalvikvm(1259): java.lang.IllegalStateException: Failed to find the My Contacts group
12-08 12:59:59.610: I/dalvikvm(1259):   at android.provider.Contacts$People.addToMyContactsGroup(Contacts.java:491)
12-08 12:59:59.610: I/dalvikvm(1259):   at android.provider.Contacts$People.createPersonInMyContactsGroup(Contacts.java:568)
12-08 12:59:59.610: I/dalvikvm(1259):   at com.android.contactmanager.JSInterface.addContact(JSInterface.java:89)
12-08 12:59:59.610: I/dalvikvm(1259):   at android.webkit.WebViewCore.nativeTouchUp(Native Method)
12-08 12:59:59.620: I/dalvikvm(1259):   at android.webkit.WebViewCore.nativeTouchUp(Native Method)
12-08 12:59:59.620: I/dalvikvm(1259):   at android.webkit.WebViewCore.access$3900(WebViewCore.java:55)
12-08 12:59:59.620: I/dalvikvm(1259):   at android.webkit.WebViewCore$EventHub$1.handleMessage(WebViewCore.java:1370)
12-08 12:59:59.620: I/dalvikvm(1259):   at android.os.Handler.dispatchMessage(Handler.java:99)

У меня сейчас нет устройства Android, поэтому я использую эмулятор Android для тестирования приложения. Работает ли «Сохранить контакт» в эмуляторе Android?Если так, в чем проблема с моим кодом?Любая помощь ??

TIA.

1 Ответ

1 голос
/ 08 декабря 2011

Я нашел решение этой проблемы. Сохранение контакта в эмуляторе Android работает отлично. Для сохранения контакта на устройстве я сослался на следующий блог,

http://saigeethamn.blogspot.com/2011/05/contacts-api-20-and-above-android.html

разместив его здесь на благо всех:)

Peter

...