java – 平板电脑可以打电话吗? (电话)
发布时间:2020-12-15 02:12:00 所属栏目:Java 来源:网络整理
导读:我在清单中有权限: uses-feature android:name="android.permission.READ_PHONE_STATE" android:required="false" / 检查电话是否正在使用的代码可能会为平板电脑等无法接听电话的设备启动安全例外.所以,我用这个方法来检查设备是否可以使用TelephonyManage
我在清单中有权限:
<uses-feature android:name="android.permission.READ_PHONE_STATE" android:required="false" /> 检查电话是否正在使用的代码可能会为平板电脑等无法接听电话的设备启动安全例外.所以,我用这个方法来检查设备是否可以使用TelephonyManager: private boolean doesUserHavePermission(){ PackageManager pm = getPackageManager(); final boolean deviceHasPhone = pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY); return deviceHasPhone; } 在我实际检查是否收到呼叫的代码中,我输入了一个if语句来查看设备是否有电话: private PhoneStateListener phoneStateListener = new PhoneStateListener() { @Override public void onCallStateChanged(int state,String incomingNumber) { if (doesUserHavePermission()) { //I ADDED THIS if (state == TelephonyManager.CALL_STATE_RINGING) { onPhoneCallInterrupt(); //Method I made that mutes audio for phone call } else if (state == TelephonyManager.CALL_STATE_IDLE) { } else if (state == TelephonyManager.CALL_STATE_OFFHOOK) { onPhoneCallInterrupt(); //Method I made that mutes audio for phone call } } } }; 我做了一个toast来检查那个布尔方法doUserHavePermission()的返回值,它总是返回true,即使在我的模拟器平板电脑上……这很奇怪,因为平板电脑无法拨打/接听电话…… 我正在测试的模拟器设备是: 为什么布尔值总是为真,我应该如何适当地改变我的方法呢? 解决方法
将平板电脑连接到计算机,让应用程序在平板电脑上运行,并检查它是否仍然返回true.
仿真器并不可靠得出这样的结论,因为仿真器手机上也有电话应用程序,但它无法呼叫. 顺便说一下,尝试用你的问题提供清晰的图片.你包含的那个是不可读的,我无法从中获取任何信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |