HarmonyOS鸿蒙Next应用开发中,怎么获取本机的手机号码?
HarmonyOS鸿蒙Next应用开发中,怎么获取本机的手机号码? 尝试用SimInfoManager获取,手机号码是空的,我的方法是这个:
private void getSimInfo() {
new Thread(() -> {
SimInfoManager simInfoManager = SimInfoManager.getInstance(context);
int n = simInfoManager.getMaxSimCount();
for (int i = 0; i < n; i++) {
if (simInfoManager.hasSimCard(i)) {
String simTelephoneNumber = simInfoManager.getSimTelephoneNumber(i);
String message = "slot " + i + "'s phone number:" + simTelephoneNumber;
LogUtils.info(TAG, message);
System.out.println(message);
LogUtils.info(TAG, simInfoManager.getIsoCountryCodeForSim(i));
LogUtils.info(TAG, simInfoManager.getLine1NumberFromImpu(i));
LogUtils.info(TAG, simInfoManager.getSimGid1(i));
LogUtils.info(TAG, simInfoManager.getSimIccId(i));
LogUtils.info(TAG, simInfoManager.getIsoCountryCodeForSim(i));
LogUtils.info(TAG, simInfoManager.getSimOperatorNumeric(i));
LogUtils.info(TAG, simInfoManager.getSimSpn(i));
LogUtils.info(TAG, simInfoManager.getSimTeleNumberIdentifier(i));
LogUtils.info(TAG, simInfoManager.getVoiceMailIdentifier(i));
LogUtils.info(TAG, simInfoManager.getVoiceMailNumber(i));
LogUtils.info(TAG, simInfoManager.getSimTelephoneNumber(i));
LogUtils.info(TAG, String.valueOf(simInfoManager.getCardType(i)));
TaskDispatcher uiTaskDispatcher = getUITaskDispatcher();
uiTaskDispatcher.asyncDispatch(() -> WidgetHelper.showOneSecondTips(context, message));
}
}
}).start();
}
日志里记录的信息:
04-09 02:41:15.628 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: slot 0 's phone number:
04-09 02:41:15.629 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: cn
04-09 02:41:15.629 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice:
04-09 02:41:15.630 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice:
04-09 02:41:15.631 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: cn
04-09 02:41:15.631 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: 46003
04-09 02:41:15.632 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: 中国电信
04-09 02:41:15.632 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice:
04-09 02:41:15.635 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice:
04-09 02:41:15.635 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: 43
04-09 02:41:15.637 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: slot 1 's phone number:
04-09 02:41:15.637 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: cn
04-09 02:41:15.638 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice:
04-09 02:41:15.639 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice:
04-09 02:41:15.639 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: cn
04-09 02:41:15.640 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: 46000
04-09 02:41:15.640 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: CMCC
04-09 02:41:15.641 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice:
04-09 02:41:15.643 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice:
04-09 02:41:15.643 8700-9075/cn.songshijia.seek I 00000/LogUtil: cn.songshijia.seek.slice.MainAbilitySlice: 20
我的手机是荣耀x10 max,插了两张卡,一张电信,一张移动,可以看到能获取到的信息还是准确的,但手机号码没有查出来。HarmonyOS应用开发,怎么获取本机的手机号码?
更多关于HarmonyOS鸿蒙Next应用开发中,怎么获取本机的手机号码?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
楼主您好,获取手机号码的接口getSimTelephoneNumber需要“GET_TELEPHONY_STATE”权限。该权限为“privileged”,为预制特权应用可用(具体说明,见https://developer.harmonyos.com/cn/docs/documentation/doc-guides/security-permissions-available-0000001051089272)。非预制特权应用是无法获取本机手机号码的。
更多关于HarmonyOS鸿蒙Next应用开发中,怎么获取本机的手机号码?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
很清晰了,非常感谢!
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17
android应用,在华为手机上获取手机号码,是不是也要申请预制特权应用
还不清楚这方面的
欢迎开发小伙伴们进来帮帮楼主
在HarmonyOS鸿蒙Next应用开发中,获取本机手机号码可以通过TelephonyManager
类实现。首先,确保在config.json
文件中声明ohos.permission.GET_TELEPHONY_STATE
权限。
示例代码如下:
import telephony from '@ohos.telephony.data';
telephony.getDefaultSim().then((simId) => {
telephony.getLineNumber(simId).then((phoneNumber) => {
console.log(\`Phone Number: \${phoneNumber}\`);
}).catch((error) => {
console.error(\`Failed to get phone number: \${error.message}\`);
});
}).catch((error) => {
console.error(\`Failed to get default SIM: \${error.message}\`);
});
此代码通过getDefaultSim
获取默认SIM卡ID,然后使用getLineNumber
获取手机号码。
在HarmonyOS鸿蒙Next应用开发中,获取本机手机号码需要通过TelephonyManager
类。首先,在config.json
中声明ohos.permission.GET_TELEPHONY_STATE
权限。然后,使用getSystemService(Context.TELEPHONY_SERVICE)
获取TelephonyManager
实例,并调用getLine1Number()
方法获取手机号码。注意,该方法可能返回空值,具体取决于运营商和SIM卡设置。