android 怎么通过js调用手机通讯录

android 怎么通过js调用手机通讯录,第1张

思路:

1、js调用android的java代码

2、通过java代码访问通讯录

3、通过java代码访问js代码返回通讯录信息

代码:

1、js调用android的java代码

 js代码:

window.ncp.callOnJs2("click")

android代码,通过webview打开页面:

mWebview.getSettings().setJavaScriptEnabled(true) 

mWebView.addJavascriptInterface(new JavaScriptInterface(), "ncp")  

final class JavaScriptInterface {     

       public int callOnJs() {                            

          return 1000  

       }     

       public void callOnJs2(String mode) {  

         //TODO  

       }       

  }

2、通过java代码访问通讯录

/**得到手机通讯录联系人信息**/  

   private void getPhoneContacts() {  

ContentResolver resolver = mContext.getContentResolver()  

 

// 获取手机联系人  

Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION, null, null, null)  

 

 

if (phoneCursor != null) {  

    while (phoneCursor.moveToNext()) {  

 

    //得到手机号码  

    String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX)  

    //当手机号码为空的或者为空字段 跳过当前循环  

    if (TextUtils.isEmpty(phoneNumber))  

        continue  

      

    //得到联系人名称  

    String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME_INDEX)  

      

    //得到联系人ID  

    Long contactid = phoneCursor.getLong(PHONES_CONTACT_ID_INDEX)  

 

    //得到联系人头像ID  

    Long photoid = phoneCursor.getLong(PHONES_PHOTO_ID_INDEX)  

      

    //得到联系人头像Bitamp  

    Bitmap contactPhoto = null  

 

    //photoid 大于0 表示联系人有头像 如果没有给此人设置头像则给他一个默认的  

    if(photoid > 0 ) {  

        Uri uri =ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,contactid)  

        InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(resolver, uri)  

        contactPhoto = BitmapFactory.decodeStream(input)  

    }else {  

        contactPhoto = BitmapFactory.decodeResource(getResources(), R.drawable.contact_photo)  

    }  

      

    mContactsName.add(contactName)  

    mContactsNumber.add(phoneNumber)  

    mContactsPhonto.add(contactPhoto)  

    }  

 

    phoneCursor.close()  

}

3、通过java代码访问js代码返回通讯录信息

mWebView.loadUrl("javascript:onSaveCallback()")

1、首先打开“快捷指令”应用程序并点击底部的“创建快捷方式”按钮,选择批量添加,在“动作”屏幕上,搜索框中输入“通讯录”。

2、其次选择“获取联系人”动作,在“获取联系人”屏幕上,选择要获取的联系人信息,点击“下一步”按钮并为快捷指令命名。

3、最后点击“添加到通讯录”按钮,将快捷指令批量添加到通讯录上。

快捷指令批量添加到通讯录步骤如下:

1、打开“快捷指令”应用程序。

2、选择要添加到通讯录的快捷指令。

3、点击右上角的“分享”按钮。

4、选择“添加到联系人”选项。

5、输入联系人名称和号码。

6、点击“保存”即可将快捷指令添加到通讯录。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11670367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存