UniAppx 跳转Android 系统通讯录

工作中遇到的问题浅浅记录一下

跳转方法

TypeScript 复制代码
	//跳转系统 通讯录
	function jumpContacts(tag : number) {
		const context = UTSAndroid.getUniActivity()!;
		const intent = new Intent(Intent.ACTION_PICK);
		intent.setData(Uri.parse("content://com.android.contacts/data/phones"));
		intent.setType("vnd.android.cursor.dir/phone_v2");
		context.startActivityForResult(intent, tag.toInt());
	}

回调监听

TypeScript 复制代码
	onLoad(() => {
		console.log("sun,onLoad");
		httpGetInfoData()

		UTSAndroid.onAppActivityResult((requestCode : Int, resultCode : Int, data : Intent | null) => {
			if (resultCode != -1) return;

			if (data == null) return;

			const context = UTSAndroid.getUniActivity()!;
			const contactData = data.getData();
			if (context == null || contactData == null) return;

			const contentResolver = context.getContentResolver();

			// const projection : Array<string> = [
			// 	"data1",     // 电话号码(Phone.NUMBER)
			// 	"display_name" // 显示名称(Phone.DISPLAY_NAME)
			// ];

			const cursor = contentResolver.query(contactData, null, null, null, null);

			let name = "";
			let number = "";

			if (cursor != null && cursor.moveToFirst()) {
				try {
					number = cursor.getString(cursor.getColumnIndexOrThrow("data1"));
					name = cursor.getString(cursor.getColumnIndexOrThrow("display_name"));

					// 清理电话号码中的空格和特殊字符
					number = number.replace(/[()\s\-+]/g, '');
				} catch (e) {
					console.error("读取联系人失败", e);
				} finally {
					cursor.close();
				}
			}
			console.log("name", name)
			console.log("number", number)

			if (requestCode == contact1Tag) {
				contact1.value = number;
				contact1Name.value = name;
			} else if (requestCode == contact2Tag) {
				contact2.value = number;
				contact2Name.value = name;
			}


		})
	});
相关推荐
User_芊芊君子几秒前
一条命令搞定 mysql_exporter 部署,Shell 脚本把重复配置这件事自动化了
android·mysql·自动化
huaCodeA38 分钟前
Android面试-Kotlin作用域函数
android·面试·kotlin
BlueBirdssh44 分钟前
fastboot vs adb 的区别
android·adb
imuliuliang1 小时前
Laravel5.x核心特性全解析
android·运维·数据库·nginx
qq_2518364571 小时前
基于java 安卓-RSS阅读系统毕业论文
android·java·开发语言
晓梦林11 小时前
cp520靶场学习笔记
android·笔记·学习
有味道的男人13 小时前
Open Claw对接1688平台
android·rxjava
_李小白14 小时前
【android opencv学习笔记】Day 17: 目标追踪(MeanShift)
android·opencv·学习
用户860225046747215 小时前
AI 分析头部APP系统优化框架
android
用户860225046747215 小时前
AI分析头部APP优化框架
android