npm i --save nativescript-sim-info
- 版本:2.0.0
- GitHub: https://github.com/erodriguezh/nativescript-sim-info
- NPM: https://npmjs.net.cn/package/nativescript-sim-info
- 下载
- 昨日: 1
- 上周: 3
- 上个月: 17
nativescript-sim-info
NativeScript-Sim-Info 是一个 NativeScript 插件,允许访问 SIM 卡信息。
安装
转到您的应用程序根目录并执行
tns plugin add nativescript-sim-info
用法
import { SimInfo } from "nativescript-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": "+4366XXXXXXXX",
"deviceSoftwareVersion": "00",
"simSerialNumber": "894317008000176XXXX",
"subscriberId": "23217004025XXXX",
"isDefaultSim": true,
"networkType": 13,
"deviceImei": "86760103133XXXX",
"deviceMeid": "9900111506XXXX",
"subscriptionId": 1
},
{
"isoCountryCode": "at",
"carrierName": "A1",
"isNetworkRoaming": true,
"phoneNumber": "+4366XXXXXXX",
"mcc": 232,
"mnc": 1,
"subscriptionId": 4,
"simSerialNumber": "894301561520280XXXX",
"isDefaultSim": false
}
]
可能的错误
该插件将根据 Android 版本请求更多或更少的权限项。如果用户拒绝任何权限,将返回一个表示拒绝的承诺的对象。
{
"android.permission.READ_PHONE_STATE": false,
"android.permission.READ_SMS": false,
"android.permission.READ_PHONE_NUMBERS": false,
}
iOS 输出
单卡
[
{
"mnc": "232",
"isoCountryCode": "at",
"carrierName": "A1",
"allowsVOIP": true,
"mcc": "1"
}
]
API
属性 | 平台 | Android 版本 | iOS 版本 | 类型 | 描述 |
---|---|---|---|---|---|
isoCountryCode | 通用 | 1 | 1 | 字符串 | 返回 SIM 提供商国家代码的 ISO-3166 国家代码等效值。 |
carrierName | 通用 | 1 | 1 | 字符串 | 返回 SIM 提供商的 MCC+MNC(移动国家代码 + 移动网络代码)。5 或 6 位十进制数字。 |
mcc | 通用 | 1 | 1 | 字符串 - 数字 - 空值 | 返回移动国家代码 (MCC)。 |
mnc | 通用 | 1 | 1 | 字符串 - 数字 - 空值 | 返回移动网络代码 (MNC)。 |
simOperator | android | 1 | - | 字符串 | 返回服务提供商名称 (SPN)。 |
callState | android | 1 | - | 数字 - 空值 | 返回设备上所有电话的状态。 |
dataActivity | android | 1 | - | 数字 - 空值 | 返回一个表示数据连接(蜂窝)上的活动类型的常量。 |
phoneType | android | 1 | - | 数字 - 空值 | 返回一个表示设备电话类型的常量。 |
simState | android | 1 | - | 数字 - 空值 | 返回一个表示默认 SIM 卡状态的常量。 |
isNetworkRoaming | android | 1 | - | 布尔值 - 空值 | 如果设备在当前网络上被视为漫游,则返回 true,用于 GSM。 |
phoneNumber | android | 1 | - | 字符串 | 返回线路 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) | - | 数字 - 空值 | 返回订阅。 |
simSerialNumber | android | 5.1 (Api: 22) | - | 字符串 | 返回 SIM 唯一序列号 (ICCID)。 |
networkType | android | 7 (Api: 24) | - | 数字 - 空值 | 返回一个表示设备当前用于数据传输的无线电技术(网络类型)的常量。 |
deviceImei | android | 8 (Api: 26) | - | 字符串 | 返回 GSM 的 IMEI。 |
isDefaultSim | android | - | - | 布尔值 - 空值 | 如果 SIM 被认为是默认的,则返回 true。 |
allowsVOIP | ios | - | 1 | 布尔值 - 空值 | 表示运营商是否允许在其网络上进行 VoIP 电话。 |
Android
双卡支持
从 Api 级别 22,即 LOLLIPOP_MR1 或 Android 5.1 开始,支持双卡。我想指出,Android 认为的默认订阅(TelephonyManager)和订阅(SubscriptionManager)之间的信息属性数量存在差异。
iOS
双卡支持
从iOS 12开始,苹果支持双卡。默认卡和副卡的可用的信息属性是相同的。目前,我无法测试对e-sim卡的支持。如果有人能测试并告诉我,我将不胜感激
电话号码
在任何情况下,苹果都不允许访问电话号码。更多关于这个话题的信息可以在指南的第2.5.2点找到。
致谢
此插件基于Nativescript-Telephony,并使用以下依赖项
NativeScript-Permissions: https://github.com/NathanaelA/nativescript-permissions