思路:
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、点击“保存”即可将快捷指令添加到通讯录。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)