npm i --save ns-sim-info
- 版本: 1.0.0
- GitHub: https://github.com/liuy97/ns-sim-info
- NPM: https://npmjs.net.cn/package/ns-sim-info
- 下载量
- 昨日: 0
- 上周: 0
- 上月: 0
ns-sim-info
此插件是从 nativescript-sim-info 分支出来的。此插件使用 @nativescript/plugin-seed。插件在 Android 上不会请求电话号码,以减少请求的权限。manager.getLine1Number 在 Android 上需要 SMS 和电话号码权限,这些权限在 Play 商店中很难授予。iOS 不提供电话号码。
ns plugin add ns-sim-info
使用方法
import { SimInfo } from "ns-sim-info";
load(): void {
const simInfo = new SimInfo();
simInfo.getData()
.then((simData) => {
console.log(simData)
}).catch((error) => {
console.error(error);
});
}
Android 输出
单卡
[
{
"isoCountryCode": "at",
"simOperator": "23XXX",
"carrierName": "A1",
"callState": null,
"dataActivity": null,
"phoneType": 1,
"simState": 5,
"isNetworkRoaming": true,
"mcc": 232,
"mnc": 1,
"phoneNumber": "",
"deviceSoftwareVersion": "01",
"simSerialNumber": "894301561923869XXXX",
"subscriberId": "23201163022XXXX",
"isDefaultSim": true,
"networkType": 13,
"deviceImei": "35404611160XXXX",
"deviceMeid": "",
"subscriptionId": 1
}
]
双卡
[
{
"isoCountryCode": "at",
"simOperator": "23XXX",
"carrierName": "spusu",
"callState": null,
"dataActivity": 4,
"phoneType": 1,
"simState": 5,
"isNetworkRoaming": true,
"mcc": 232,
"mnc": 17,
"phoneNumber": "",
"deviceSoftwareVersion": "00",
"simSerialNumber": "894317008000176XXXX",
"subscriberId": "23217004025XXXX",
"isDefaultSim": true,
"networkType": 13,
"deviceImei": "86760103133XXXX",
"deviceMeid": "9900111506XXXX",
"subscriptionId": 1
},
{
"isoCountryCode": "at",
"carrierName": "A1",
"isNetworkRoaming": true,
"phoneNumber": "",
"mcc": 232,
"mnc": 1,
"subscriptionId": 4,
"simSerialNumber": "894301561520280XXXX",
"isDefaultSim": false
}
]
可能出现的错误
该插件将根据 Android 版本请求更多或更少的权限项。如果用户拒绝其中任何一项权限,则返回一个被拒绝的承诺对象。
{
"android.permission.READ_PHONE_STATE": false,
}
iOS 输出
单卡
[
{
"mnc": "232",
"isoCountryCode": "at",
"carrierName": "A1",
"allowsVOIP": true,
"mcc": "1"
}
]
API
属性 | 平台 | Android 版本 | iOS 版本 | 类型 | 描述 |
---|---|---|---|---|---|
isoCountryCode | common | 1 | 1 | 字符串 | 返回 SIM 提供商国家代码的 ISO-3166 国家代码等效值。 |
carrierName | common | 1 | 1 | 字符串 | 返回 SIM 提供商的 MCC+MNC(移动国家代码+移动网络代码)。5 或 6 位十进制数字。 |
mcc | common | 1 | 1 | 字符串 - 数字 - null | 返回移动国家代码 (MCC)。 |
mnc | common | 1 | 1 | 字符串 - 数字 - null | 返回移动网络代码 (MNC)。 |
simOperator | android | 1 | - | 字符串 | 返回服务提供商名称 (SPN)。 |
callState | android | 1 | - | 数字 - null | 返回设备上所有电话的状态。 |
dataActivity | android | 1 | - | 数字 - null | 返回一个常数,表示数据连接(蜂窝)上的活动类型。 |
phoneType | android | 1 | - | 数字 - null | 返回一个常数,表示设备电话类型。 |
simState | android | 1 | - | 数字 - null | 返回一个常数,表示默认 SIM 卡的状态。 |
isNetworkRoaming | android | 1 | - | 布尔值 - null | 如果设备被视为当前网络上的漫游,则返回 true,对于 GSM 而言。 |
phoneNumber | android | - | - | 字符串 | 返回线路 1 的电话号码字符串,例如,GSM 电话的 MSISDN。如果不可用,则返回 null 或 ""。 |
deviceSoftwareVersion | android | 1 | - | 字符串 | 返回设备的软件版本号,例如,GSM 电话的 IMEI/SV。 |
simSerialNumber | android | 1 | - | 字符串 | 如果适用,返回 SIM 的序列号。 |
subscriberId | android | 1 | - | 字符串 | 返回唯一的订阅者 ID,例如,GSM 电话的 IMSI。 |
subscriptionId | android | 5.1 (Api: 22) | - | 数字 - null | 返回订阅。 |
simSerialNumber | android | 5.1 (Api: 22) | - | 字符串 | 返回 SIM 唯一序列号 (ICCID)。 |
networkType | android | 7 (Api: 24) | - | 数字 - null | 返回一个常数,表示设备用于数据传输的无线电技术(网络类型)。 |
deviceImei | android | 8 (Api: 26) | - | 字符串 | 返回 GSM 的 IMEI。 |
isDefaultSim | android | - | - | 布尔值 - null | 如果 SIM 被视为默认的,则返回 true。 |
allowsVOIP | ios | - | 1 | 布尔值 - null | 表示运营商是否允许在其网络上进行 VoIP 电话。 |
Android
双卡支持
从 API 级别 22 开始,即 LOLLIPOP_MR1 或 Android 5.1,支持双卡。我想指出,Android 认为默认订阅(TelephonyManager)和订阅(SubscriptionManager)之间的信息属性数量存在差异。
iOS
双卡支持
从 iOS 12 开始,Apple 支持双卡。默认和副卡可用的信息属性相同。
电话号码
在任何情况下,苹果都不允许访问电话号码。有关此主题的更多信息,请参阅指南中的2.5.2点。
测试手机
- 小米9
- iPhone 5s
致谢
许可协议
Apache许可证第2.0版