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

我在清单中有权限:

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,即使在我的模拟器平板电脑上……这很奇怪,因为平板电脑无法拨打/接听电话……

我正在测试的模拟器设备是:

Sse6G.png

为什么布尔值总是为真,我应该如何适当地改变我的方法呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值