uni-app使用app获取本机号码和iccid

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app使用app获取本机号码和iccid

能否开发一个插件,能获取本机号码和iccid?

5 回复

能获取到,但是获取的不全呀,里面包含字母的获取不全


如何获取的,求代码

只要是原生能干的活 就没有一个原生插件干不了的 微信:zhimitec

专业两端插件开发,Q 1196097915 不收预付款 满意在付款

uni-app中直接获取本机号码(MSISDN)和ICCID(集成电路卡识别码)是比较复杂且受限的操作,因为这些信息通常涉及到用户隐私和安全,多数操作系统和应用商店都有严格的规定来限制这类信息的获取。特别是在iOS平台上,获取这些信息几乎是不可能的,而在Android平台上,虽然理论上可以通过某些权限和API获取,但也受到系统版本和设备厂商的限制。

尽管如此,如果你确实需要在Android平台上尝试获取这些信息(请注意,这可能违反某些应用商店的政策),以下是一个基本的思路,但请注意,这并不能保证在所有设备上都能工作:

获取本机号码(MSISDN)

在Android上,获取本机号码通常需要READ_PHONE_STATE权限,但现代Android版本(从Android 10开始)已经限制了对这一信息的访问。以下是一个尝试获取本机号码的示例代码,但很可能在现代设备上无法工作:

// manifest.json
{
  "mp-weixin": {},
  "app-plus": {
    "distribute": {
      "android": {
        "permissions": [
          "android.permission.READ_PHONE_STATE"
        ]
      }
    }
  }
}

// 在你的页面中
if (uni.getSystemInfoSync().platform === 'android') {
  plus.android.importClass('android.Manifest');
  plus.android.requestPermissions([plus.android.constant.Manifest.permission.READ_PHONE_STATE], function(event) {
    if (event.deniedAlways.length === 0) {
      const TelephonyManager = plus.android.importClass('android.content.Context');
      const tm = plus.android.runtimeMainActivity.getSystemService(TelephonyManager.TELEPHONY_SERVICE);
      const lineNumber = tm.getLine1Number(); // 尝试获取本机号码
      console.log('本机号码:', lineNumber);
    } else {
      console.error('权限被拒绝');
    }
  });
} else {
  console.error('当前平台不支持获取本机号码');
}

获取ICCID

获取ICCID通常涉及到访问SIM卡信息,这在大多数现代Android设备上也是受限的。以下是一个理论上可能的代码示例,但同样,很可能无法在现代设备上工作:

if (uni.getSystemInfoSync().platform === 'android') {
  const SubscriptionManager = plus.android.importClass('com.android.internal.telephony.SubscriptionManager');
  const subInfo = SubscriptionManager.from(plus.android.runtimeMainActivity).getActiveSubscriptionInfo();
  if (subInfo != null) {
    const iccid = subInfo.getIccId(); // 尝试获取ICCID
    console.log('ICCID:', iccid);
  } else {
    console.error('无法获取订阅信息');
  }
} else {
  console.error('当前平台不支持获取ICCID');
}

重要提示:上述代码可能无法在现代Android设备上运行,因为这些API和系统权限已经受到严格限制。在生产环境中,强烈建议不要依赖这些方法来获取用户隐私信息。

回到顶部