java– 平板电脑可以打电话吗? (电话)

java– 平板电脑可以打电话吗? (电话),第1张

概述我在清单中有权限:<uses-featureandroid:name="android.permission.READ_PHONE_STATE"android:required="false"/>检查电话是否正在使用的代码可能会为平板电脑等无法接听电话的设备启动安全例外.所以,我用这个方法来检查设备是否可以使用TelephonyManager:privatebo

我在清单中有权限:

 <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.
仿真器并不可靠得出这样的结论,因为仿真器手机上也有电话应用程序,但它无法呼叫.

顺便说一下,尝试用你的问题提供清晰的图片.你包含的那个是不可读的,我无法从中获取任何信息.

总结

以上是内存溢出为你收集整理的java – 平板电脑可以打电话吗? (电话)全部内容,希望文章能够帮你解决java – 平板电脑可以打电话吗? (电话)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1120422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存