首页
学习
活动
专区
工具
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

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

相关·内容

await async 函数工作

;但是代码的顶层,当我们 async 函数的外部时,我们语法上是不能使用 await 的,所以通常添加 .then/catch 去处理最终结果或者 error。...因为还有 await 关键字,它 async 函数工作,而且非常酷。...Await // async 函数工作 let value = await promise; await 关键字使 JavaScript 等待,直到 promise 得到解决并返回其结果...await 顶层代码无效 刚开始使用 await 的新手往往会忘记这一点,但我们不能在最顶层的代码编写 await,因为它会无效: // 顶层代码中导致语法错误 let response = await...但是代码的顶层,当我们 async 函数的外部时,我们语法上是不能使用 await 的,所以通常添加 .then/catch 去处理最终结果或者 error。 与上述示例的 (*) 行一样。

1.4K10

使用Clang编译C程序设备执行

由于Android NDK从r18开始就已经抛弃GCC,转而将Clang当作默认编译器,因此我们直接使用NDK工具包进行编译 实验环境 模拟器 android-ndk-r19c 实验步骤 第一步 源码编写...\n"); return 0; } 第二步 源码编译 android-ndk-r19c目录下toolchains文件夹的llvm文件夹即为clang编译工具包 llvm的子目录bin...下存放这针对各个架构的clang编译器,由于模拟器是ARM架构,这里我们使用armv7a-linux-androideabi23-clang 命令窗口执行如下指令: armv7a-linux-androideabi23...-clang test.c -o test 由于clang已经指定了Android23版本的SDK,这里无需要像GCC那样指定-static编译 第三步 将编译后的可执行文件传至设备 adb push

2.8K20

Java自定义注解开发的简单运用

它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是同一个层次。它可以声明包、类、接口、枚举、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。...:通过代码里标识的元数据让编译器能够实现基本的编译检查【Override】 java中有很多框架都用到了注解包括java的Api也是,想一些网络框架的@GTE,@POST,@PATH等等,java的...注解 定义一个名为BindView的注解,使用@interface来声明这是一个注解,所有的注解内方法不能有参数,其他的均和普通的接口写法一致,可以定义默认返回值也就是default n的形式,如果注解内只有一个方法那么只能使用...通过反射找到控件 以上代码有一些反射基础的同学都可以看明白,而且的写了注释,最后是页面的代码 ?...Activity页面 控件上面写上注释和它的ID值,使用控件之前把上下文传递给FindViewByReflection这个类,让它通过反射来遍历所有用到了注释的变量,然后为它们赋值,也就是在运行过程

1.6K10

脚本项目开发的一些简单应用

前言 平时的项目开发过程,除了业务逻辑的编写以外,还有一些其它的琐事需要处理,比如资源更新、单元测试、资源压缩等。...但是机器正在研发暂时没有样机,不能在1080×720的机器上调试。后来有位大神就提出可以修改1920×1080手机的配置,让其模拟1080×720的分辨率。...这其中可能会有问题: 1、视觉的同事输出的图片名称为了辨别很多都是用的中文,我们拷贝到工程的时候需要进行改名,改成我们工程需要的英文名称; 2、当文件比较多的时候,...项目开发的过程能够将主要精力集中在业务的逻辑上,而不是被一些琐事浪费时间。 批处理文件也是文档,如果有新人进入团队,可以让他查看脚本文档,也可以对项目的工作流程有一定的理解。...当在工作需要做一些重复的工作就要考虑到是否可以使用工具来实现。希望大家多动脑筋,做一个懒人。 小贴士 本文版权归Open软件开发小组所有,如需转载请联系主编申请授权。

1.9K20

Android Instant App(即时应用程序)启用 ProGuard (混淆)

gold-m… 译者:JayZhaoBoy 校对者:hanliuxin5 Instant Apps(即时应用)和 4 MB 字节的限制 把一个已经存在的应用程序转换成 Android Instant App(即时应用程序...这里有许多通用和 即时程序专用(AIA 意为 Android Instant Apps)的技术可以减少 APK 大小,你应该都去了解一下,但使用 ProGuard(混淆)来移除未使用的代码对 nstant...当 ProGuard(混淆)集成到 Android 构建中时,新的 com.android.feature Gradle 插件(用于构建 AIA (即时应用程序)模块)根本不存在,并且 ProGuard...为你所有的即时应用功能启用 ProGuard(混淆) 可安装的应用程序版本构建过程,ProGuard(混淆)运行一次:使用 com.android.application 插件的模块。...我选择了一个名为 aia-proguard-rules.pro 的文件用于我的 Android Instant App(即时应用程序)专用 ProGuard(混淆)配置。

2.5K30

爆料 | “间谍门”事件愈演愈烈,又一家中国公司被曝300万台设备植入rootkit

300万台设备植入RootKit 根据研究报告声称,已经有三百万台安设备在出厂的时候被被植入了该恶意软件。...两位研究人员从Best Buy官网购买了一部BLU Studio G手机,研究人员才配置好抓包系统后,很快一条未加密的连接就出现在了屏幕上,该连接指向了oyag.lhzbdvm.com。 ?...远程攻击者完全可以窃取受影响设备的个人信息,远程进行设备的wipe操作,甚至可以企业网络获取其他系统的访问权,获取敏感信息。...Lead 3i LEAGOO Lead 2S LEAGOO Alfa 6 IKU Colorful K45i Beeline Pro 2 XOLO Cube 5.0 根据统计,目前受到此rootkit感染的设备数量超过...显然这次的中国安设备“间谍门“事件越演越烈,或许将会影响到中国到欧美地区的国际业务,而美国政府很有可能会加大对中国互联网产品的安全检测。

1.4K70

Android AIDL 跨进程通信

IPC 跨进程通信有很多种方式,我们可以用 Bundle传递数据,通过 Intent 意图去打电话, Uri 里面传递电话号码 //手动拨号将Intent.ACTION_CALL改为Intent.ACTION_DIAL...Intent intent = new Intent(Intent.ACTION_CALL); Uri data = Uri.parse("tel:" + phoneNum...如果我们 AIDL 需要传递自定义数据类型,那就必须有一个实现序列化的实体类,基本数据类型除了 Short 外,AIDL 都支持,List、Map也同样支持,前提是他们装载的元素是 AIDL 支持的...processId = String.valueOf(android.os.Process.myPid()); return binder; } } 这里我偷懒了一下,没有新建两个工程...服务端依然会自己实例化一个空对象(里面的参数没有值而已) inout 这个修饰符有争议,很多博客上写当服务端修改客户端传递的数据后会把这个修改同步到移动端,但是经过我的反复测试,数据是不会同步的,查阅了官方文档

45330

开发过程的RatingBar、Handler以及GPS大型项目中的使用【Android】

RatingBar 点击评分栏后,通过Toast显示当前分数 单击按钮获取当前分数并将其显示TextView上 <RatingBar android:id="@+id/rb_normal...关键是<em>在</em>加载页面时使用onload()加载相应的js脚本。js脚本<em>中</em>定义的一个函数是取出传递的对象,获取其中的数据,并通过for循环以单位行的形式打印出来! 有图片和事实。...如果希望处理程序正常<em>工作</em>,则当前线程<em>中</em>必须有Looper对象 Message:处理程序接收并处理的消息对象 MessageQueue:消息队列。先进先出管理邮件。...<em>安</em><em>卓</em>系统<em>中</em>通常有四种定位方法:GPS定位、WIFI对准、基站定位、AGPS定位(基站+GPS); 本系列教程仅解释GPS定位的基本用法!GPS用于通过与卫星的交互获得设备的当前经度和纬度。...毕竟,我们的设备<em>不能</em>总是水平的。Android返回的方向值是一个长度为3的flaot数组,包括三个方向的值!

1.7K10

逆向:这是一篇逆向基础函数ARM32的刨根问底。

栈帧函数的使用? 1. 怎样ARM汇编中去识别和定位出函数 1.使用专门的跳转指令。...参数传递时,将所有参数看做是存放在连续的内存单元的字数据。...计算机,栈非常重要。这个寄存器保存着栈顶的指针。这里可以看到更多关于栈的信息。 r14:链接寄存器(link register)。存储着当被调用函数返回时,将要执行的下一条指令的地址。...以上ARM汇编bx前面有再开辟完栈空间后有对应的六个ldr指令,表示这个函数有六个参数 ? 4.函数的返回值是通过怎样接收存储?...下例栈就是用于存储保存局部变量的。 ? ? 栈用于存储返回值的 ? ? Str r0,[r7,#12]意思是将返回值R0写入到栈[r7,#12]的位置 7. 栈帧函数的使用?

3.3K74

跨进程通信之Aidl教程详解(一)

多进程通信主要有四大方案:1,Activity 2,Broadcast Receiver 3,Content Prodiver 4,Service 1,Activity Intent intent...= new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:18702531326"))...每个订阅了广播的接受者的能收到数据(没有被拦截),但这个方式是被动的,它们无法交互,对于绝大多数的业务需求来说都需要请求网络数据并计算返回 3,Content Prodiver 内容提供者,四大组件之一...aidl文件夹下新建包名 ? 新建aidl文件 ? 切记后缀名 .aidl Aidl源码如下 ? 编写供Client项目调用的Service ?...newComponentName("com.example.administrator.aidldemo1", "com.example.administrator.aidldemo1.MyService")); //

1.1K20

30岁程序媛一家公司工作八年后,告别“体制化”终于跳槽,别再妄想靠公司养老了

在后来的了解,我发现我们公司其实也大力招聘,范围标准已经从本科降低到了专科。 面试经过 面试了几家,最后基本都过了。...很多时间,我之前的公司,我感觉我更多地被“体制化”了,如《肖申克救赎》里的那个老图书管理员一样。每天做着同样的事,写着同样的代码,复制粘贴就够了。我所用到的知识,工作一年的时间,都学会了!...所以公司职务、薪资各方面都还不错。 能到这个层级,工作、生活也都相对比体面,基本上不会想着去外面折腾了,公司的工作也都是以稳定为主。 程序员C的生活,估计也会被大多数程序员所羡慕着......所以一家公司呆了10年的程序员,大概率会分为这3类: 1、工作稳稳当当,不求上就不求过错,平稳就好。 2、工作能力下降,工作如履薄冰,有可能会在公司不稳定的时候被裁员。...也更加容易确定自身的短板在哪,同时,也可以督促自己学习提升(小伙子,你了解的技术有点落伍了呀…) 多看大佬的学习笔记,学习大佬的设计思想: 只要是程序员,不管是Java还是Android,如果不去阅读源码,

64520

【翻译】17位谷歌专家称号大牛如何看待Kotlin

Annyce 是一名谷歌开发专家,她在过去 6 年里一直致力于多种多样的生态系统相关应用开发。 同时她也是一名国际会议演讲专家、作者,同他人分享开发的经验。...对开发和平面设计充满激情。目前 Atlassian 的悉尼工作工作,对于他来说,这是澳大利亚提供的最好的工作环境了。 Kotlin 打破了那些争执于开发界的游戏规则。...得益于与 Java 的互操作性,一旦遇到任何 Kotlin 不能解决的问题,我都能回滚到 Java 解决。 这门语言最强大的,说来也是简单的一个特性是函数扩展功能,它确实简化了我的工作流程。...基于它的特性,天生支持所有 Java 7 版本的功能,但是支持一部分 Java 8 所展示的特性。这意味着减速了生态系统平台的发展。好在 Kotlin 现在可以帮助填补这个空白了。...它的最初目标就是解决 Java 的不足,就如同 Scala 做的,不过它解决了一部分现有的问题(比如编译时长)。

1.1K50

Unity与交互 | Unity2019.3版本之后,Android Studio写代码导出aar包与Unity中使用交互的方法

,Unity的class包的内容发生了变化。...官方将UnityPlayerActivity.java单独做了一个文件夹分离了出来,所以Unity2019.3版本之后就不能跟之前一样,复制安装磁盘 \Unity\Editor\Data\PlaybackEngines...这是旧版本从AS打包aar给Unity使用的方法: Unity与交互 之 ✨ Android Studio写代码导出aar包,Unity中使用交互(小白完整篇) 下面来看一下新版具体的操作实例...这一点就不多说了,与之前的类似 第二步:将class包与UnityPlayerActivity.java复制到AS项目中 与之前旧版本一致,只需要增加了将UnityPlayerActivity.java复制到AS这一步骤...Unity 2019.2.3+ 使用arm64 + IL2CPP导出的原生项目会包括两个gradle项目 launcher unityLibrary Unity官方声明这样是为了把Unity的项目完全剥离出来

2.2K10

如何进行iOS技术博客的备案?

​标题:iOS技术博客备案流程及要求解析摘要:本篇问答,我们将为iOS技术博主介绍如何进行备案。如果你的iOS应用包含简单的页面,并通过蓝牙进行数据采集和传输,那么你可能不需要备案。...审核时间可能会有所不同,通常需要数个工作日甚至更长时间。DNS解析:一旦备案获得核准,你需要在域名注册商处进行DNS解析配置,将域名指向你的服务器IP地址。...3.勾选备案APP平台,IOS或,之后下一步上传常规资料如果APP有就选​如图,根据页面提示,输入APP信息比如:平台特征信息1平台软件包名称公钥证书MD5指纹平台服务器域名这里的有一个公钥信息...,可以直接appuploder-文件查看里面去获取:如图,appuploder工具,文件查看页面可查看到备案公钥(跟iOS都可以查看)!​...目前国内应用商店是全面要求APP备案的,如果没有APP备案是不能通过审核发布到各大应用商店。

36510
领券