更新记录
1.0.0(2026-09-15)
- 首次发布独立 Android SIM 信息 UTS 插件。
- 支持读取系统提供的本机 SIM 手机号及号码可用状态。
- 支持判断当前是否启用双卡,区分启用订阅数量与硬件支持数量。
- 支持展示卡槽、订阅 ID、运营商及 eSIM 信息。
- 提供 Vue2、Vue3 两套独立示例工程。
平台兼容性
uni-app(5.26)
| Vue2 | Vue2插件版本 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | - | - | - | - | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
葫芦 SIM 信息 UTS
精简Android插件,只提供两个接口:获取本机SIM手机号、判断当前是否启用双卡。独立版本1.0.0,构建 2026-09-15-uts-sim。带普通uni-app Vue2及Vue3两套Demo,不是uni-app x。
插件入口为UTS,Java AAR只使用Android系统API,无第三方运行库、旧UniModule/SDK桩或其他插件依赖。没有拨号、电话监听、短信、联系人、语音、录音文件、前台服务功能,也不上传号码。
集成
把 hulu-sim 文件夹放到应用 uni_modules。Android最低5.1/API22,工程兼容基线HBuilderX4.27+。UTS入口在utssdk/app-android/index.uts,Java库在libs/hulu-sim-core.aar,config.json无需声明Maven依赖。
使用HBuilderX打开对应Vue2或Vue3 Demo,为它获取自己的appid,制作并安装包含该UTS插件的Android自定义基座。Java/AAR/Manifest变化后仍必须重做基座;仅更新页面不会更新原生库。iOS、Web、小程序、鸿蒙无实现。
Vue2页面示例:
// #ifdef APP-PLUS
import { getPhoneNumber, isMultiSim } from '@/uni_modules/hulu-sim'
// #endif
export default {
methods: {
readNumbers() {
// 在Android App里,由用户点击按钮触发。
getPhoneNumber(result => {
if (result.code === 0) console.log(result.data.numbers)
else console.log(result.message)
})
},
readDualSim() { isMultiSim(result => console.log(result)) }
}
}
Vue3页面示例:
<script setup>
import { ref } from 'vue'
// #ifdef APP-PLUS
import { getPhoneNumber } from '@/uni_modules/hulu-sim'
// #endif
const resultText = ref('等待查询')
function readNumbers() {
// #ifdef APP-PLUS
if (plus.os.name !== 'Android') return
getPhoneNumber(result => { resultText.value = JSON.stringify(result) })
// #endif
}
</script>
<template>
<view><button @tap="readNumbers">获取手机号</button><text>{{ resultText }}</text></view>
</template>
两个接口
均为 method(callback),无参数对象、无持续监听,不需要keepAlive。统一返回 {code,data,message}:
| code | 含义 |
|---|---|
| 0 | 查询成功;号码可能为空,SIM列表也可能为空 |
| -1 | 系统异常、Activity不可用等 |
| -2 | Android版本或设备不支持 |
| -100 | 权限拒绝、取消或系统禁止读取 |
| -101 | 同Activity已有查询/权限请求,请等待结束 |
getPhoneNumber(callback):按系统卡槽顺序返回data.numbers,每项:
| 字段 | 含义 |
|---|---|
| number | 手机号字符串;系统不提供时为空,不伪造号码 |
| numberAvailable | 是否返回了非空号码 |
| numberStatus | available可读;unavailable未提供;permission_denied该订阅受系统限制 |
| subId | Android订阅ID,不是卡槽编号 |
| slotId | 系统卡槽索引从0开始;未知可能为-1;显示第几卡时可加1 |
| displayName | 系统SIM显示名称 |
| carrierName | 运营商名称 |
| isEmbedded | Android9+表示是否eSIM,低版本为null未知 |
isMultiSim(callback):返回data.isMultiSim,不读取号码。两接口共同返回:
| 字段 | 含义 |
|---|---|
| activeSimCount | 系统可见的已启用SIM/eSIM订阅数量,按有效订阅ID去重 |
| isMultiSim | activeSimCount >= 2 |
| supportedSimCount | 系统报告的调制解调器数量;-1未知,见下文 |
| nativeVersion / nativeBuild | 用于判断基座是否包含对应AAR |
双卡按当前可见启用订阅判断,不是只检测手机是否支持双卡硬件。手机支持两张卡但只启用一张时isMultiSim=false;含两张启用eSIM时可为true。未插卡/无可见订阅时count=0。硬件数量Android11+取getSupportedModemCount,Android6~10取getPhoneCount(系统报告的逻辑电话数量),Android5.1为-1;它不等于物理卡槽的绝对数量。Android可能隐藏某些分组/机会订阅,插件只报告系统允许看到的列表。
权限与读取限制
Manifest仅声明 READ_PHONE_STATE、READ_PHONE_NUMBERS:
- 判断双卡仅按需申请READ_PHONE_STATE,不申请读取号码或通话记录权限。
- 获取号码申请READ_PHONE_STATE;Android8/API26及以上另需READ_PHONE_NUMBERS。低版本不申请不存在的权限。
- Android6+动态授权结果由插件自己的无界面Fragment接收;拒绝/取消不会继续读SIM。已授权时直接后台查询。
- Android13+用SubscriptionManager.getPhoneNumber,旧版本读SubscriptionInfo.getNumber。号码受SIM写入、运营商和系统限制,授权后仍可能为空。
这里只能读取系统提供的本机SIM号码,不能保证每张卡都有号码,也不能用返回值作为用户身份验证或号码归属验证。单卡号码不可读时保留该卡信息;整个订阅列表权限被拒绝时返回错误。插件不读取ICCID、IMSI、短信、通话记录,不发送网络请求。完整宿主应用可能另有权限,与本插件Manifest分开核对。
生命周期与示例
同Activity一次只允许一个查询,权限弹窗和后台查询期间重复调用返回-101。回调一次后自动释放,无额外release接口。Activity销毁关闭未完成回调;只离开页面时Demo会清空页面号码并忽略迟到结果,已发起的系统读取可能继续完成。没有Service、Receiver、监听或后台保活任务。
Vue2 Demo采用data/methods/页面生命周期;Vue3 Demo采用reactive、script setup和onLoad/onUnload。两个Demo内容相同:手机号按钮、双卡按钮、当前启用数量、硬件数量、号码可用性与SIM信息。启动不查询、不申请权限,不写日志/本地持久化手机号。共用页面逻辑保留并发保护和退出清理。
Java/UTS源在独立hulu-sim-uts-java;Demo目录分别hulu-sim-uts-demo-vue2和hulu-sim-uts-demo-vue3。Java源码工程AGENTS.md和PLUGIN_FLOW.md记录维护/迁移/测试,两个Demo也各有AGENTS.md。插件压缩包不包含完整Java源码。
首次版本已做Java构建与分层检查,最终详细结果以源码工程AGENTS为准;新自定义基座、宿主Kotlin链接/DEX/APK及手机SIM/号码/权限体验仍需实测,不把模拟结果作为真机成功。

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 3
赞赏 0
下载 12607838
赞赏 1949
赞赏
京公网安备:11010802035340号