首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Intent.ACTION_CALL不能只在安卓9派中工作

Intent.ACTION_CALL是Android系统中的一个常量,用于发起电话呼叫的操作。它可以通过Intent对象的setAction()方法来设置。

在Android 9(派)及更高版本中,由于安全和隐私的考虑,Google对电话呼叫权限进行了限制。Intent.ACTION_CALL被标记为危险权限,只有具有相应权限的应用程序才能使用该操作。

为了在Android 9及更高版本中实现电话呼叫功能,应使用Intent.ACTION_DIAL操作代替Intent.ACTION_CALL。Intent.ACTION_DIAL操作将打开拨号界面,并将电话号码填充到拨号界面的输入框中,用户可以手动点击拨号按钮来发起呼叫。

以下是Intent.ACTION_DIAL的示例代码:

代码语言:txt
复制
String phoneNumber = "1234567890";
Uri uri = Uri.parse("tel:" + phoneNumber);
Intent intent = new Intent(Intent.ACTION_DIAL, uri);
startActivity(intent);

在上述代码中,phoneNumber是要拨打的电话号码。通过Uri.parse()方法将电话号码转换为tel: scheme的URI,并将其传递给Intent.ACTION_DIAL操作的Intent对象。最后,通过startActivity()方法启动拨号界面。

需要注意的是,Intent.ACTION_DIAL只能打开拨号界面,用户仍然需要手动点击拨号按钮来发起呼叫。如果想要直接发起呼叫而不打开拨号界面,需要申请CALL_PHONE权限,并使用Intent.ACTION_CALL操作。但是,在Android 9及更高版本中,这种方式需要用户授予应用程序特殊的权限,否则将无法正常工作。

腾讯云相关产品中,与电话呼叫相关的功能可以使用腾讯云通信(Tencent Cloud Communication)产品。该产品提供了丰富的通信能力,包括语音通话、视频通话、实时音视频互动等功能。您可以通过以下链接了解更多关于腾讯云通信产品的信息:

腾讯云通信产品介绍:https://cloud.tencent.com/product/im 腾讯云通信文档:https://cloud.tencent.com/document/product/269

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android开发笔记(四十)组件通讯工具Intent

    Intent用于处理Android各组件之间的通讯。Intent完成的工作主要有三部分: 1、Intent需标明本次通讯请求是从哪里来,到哪里去,要怎么走; 2、发起方携带上本次通讯需要的数据内容,接收方则对收到的Intent数据进行解包; 3、如发起方要求判断接收方的处理结果,Intent还需负责传回应答的数据内容; Intent由以下部分组成: Component : 组件,用于指定Intent的来源与目的 Action : 用于指定Intent的动作 Data(即Uri) :  用于指定动作要操纵的数据路径 Category : 用于指定动作的类别 Type : 数据类型,用于指定Data类型的定义 Extras : 扩展信息,用于指定装载的参数信息 Flags : 标志位,用于指定Intent的运行模式(也叫启动标志)。详细说明见上一节的《Android开发笔记(三十九)Activity的生命周期》。

    03

    Android开发笔记(五十五)手机设备基本操作

    手机的基本信息分两类,一类是与电话有关的信息,另一类是设备自身的信息。 与电话有关的信息可由TelephonyManager类获得,常用的参数与对应的方法如下所示: 网络运营商名称 : getNetworkOperatorName 网络运营商编号 : getNetworkOperator,返回五位数字,前三位表示国家代码(中国的为460),后两位表示运营商代码(中国移动为0,中国联通为1,中国电信为2) 手机类型 : getPhoneType 网络类型 : getNetworkType获得细分类型,getNetworkClass获得大类如2G/3G/4G SIM卡状态 : getSimState SIM卡运营商名称 : getSimOperatorName SIM卡运营商编号 : getSimOperator SIM卡序列号 : getSimSerialNumber IMSI : getSubscriberId IMEI : getDeviceId 手机号码 : 实测发现多数情况下getLine1Number和getMsisdn都无法正确取到号码,但是很多APP又需要用户的手机号,那又得想办法获取号码,获取的方法大致有如下几种: 1、用户首次使用,提示用户注册手机号,然后保存起来,下次就能取到手机号了; 2、APP自动用该手机发一条免费短信(比如向10086发),然后到发件箱中寻找该短信的发送号码; 3、如果能连到运营商的支撑系统,那么根据IMSI去后台系统查询手机号,这也是可以的; 设备自身的信息可由Build类获得,常用的参数与对应的方法如下所示: 手机厂商 : Build.MANUFACTURER 手机品牌 : Build.BRAND 手机型号 : Build.MODEL 设备名称 : Build.DEVICE CPU指令 : Build.CPU_ABI 芯片型号 : Build.HARDWARE 手机序列号 : Build.SERIAL SDK版本 : Build.VERSION.SDK_INT 系统版本 : Build.VERSION.RELEASE 版本代号 : Build.VERSION.CODENAME

    02
    领券