再说安卓的动态权限申请

DELPHI 安卓开发小手段 本文主要记录一些安卓开发时,使用的小功能,我称之为小手段,算是一个学习笔记吧,而本文中关于一些公共的功能,我仅在第一次需要时编写,后面将不再重复,比如动态权限申请之类的。{$ENDIF}目录前言如何调用手机震动功能申请震动权限建立震动函数调用震动函数如何调整手机音量如何关闭EDIT虚拟键盘动态控件属性修改无边窗体如何拖动。 阅读详情

本博客之前有两篇文章提到安卓的动态权限申请。各位观众读了以后,可能还是蒙的,因为那两篇文章没写清楚。所以这里再写一篇。

开发环境:Delphi 10.3 社区版。

安卓系统下,APP 需要申请权限的地方有两处。

1. 原来就有的,Delphi IDE 的菜单:Project / Options / Application / User Permissions 里面,右边窗口,找到你要的功能的权限,打勾。这个是以前的安卓版本需要的。比如,你要控制摄像头,或者,你要对手机的蓝牙进行操作。

2. 运行期用代码动态申请。这个是新版的安卓需要的。

因此,现在开发 APP,你必须同时做上述两件事。

以下讲如何写代码在运行期动态申请。

其实就一句话:PermissionsService.RequestPermissions(三个参数);

你的 APP 调用这句话来申请权限,就OK了。上述函数是 Delphi 提供的权限框架,必须 Use System.Permissions 才能调用。

上述函数有三个参数:

procedure TPermissionsService.RequestPermissions(const APermissions: TArray<string>;
  const AOnRequestPermissionsResult: TRequestPermissionsResultProc; AOnDisplayRationale: TDisplayRationaleProc);

上面函数中的三个参数分别是:

1. 你需要的权限的字符串数组。你需要三个权限,就填入三个字符串;你需要几个权限,就填入几个字符串。

2. 获得的用户允许的权限的结果的回调函数。你可以实现这个函数,在调用 RequestPermissions 方法时把函数名放在这里;也可以直接在这里放 nil ;

3. 你需要权限的请求文字的方法。你可以实现这个方法,在这个方法中显示一些你要显示给用户的文字。也可以直接在这里填入 nil 而无需去实现这个方法。

重点来了:权限字符串是如何来的?

这里给一个例子,其它权限字符串都一样。

FReadStoragePermission := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE);

FReadStoragePermission 就是一个权限字符串。它对应的是一个具体的权限,这里是读存储器的权限。APP 只能访问 APP 自己的文件夹,其它的文件夹 APP 是没有权限访问的,比如共享给所有程序的 Download 文件夹。如果要访问,就需要申请这个权限。TJManifest_permission.JavaClass 是声明在 Androidapi.JNI.Os 里面的,所以要先 uses 它。然后它有很多的 property,其中一个是 READ_EXTERNAL_STORAGE。其它权限的 property 也在这里找。

根据上述方法,可以获得多个不同权限的字符串。在调用 RequestPermissions 时作为参数填进去。

JStringToString 方法在 Androidapi.Helpers 里面,因此要 uses Androidapi.Helpers 才行。

那两个作为参数的方法,如果要实现,可以参考 Delphi 的例子代码,或者看俺的前一篇关于权限的博客文章。

Delphi Android11 存储适配 文件读写 delphi11 android11文件权限 阅读详情

相关推荐

安卓13去掉权限动态申请,默认授权,不用动态申请权限

在 Android 中,从 Marshmallow(API 级别 23)开始,应用程序需要在运行时请求危险权限。这意味着应用程序必须在执行需要特定权限的操作之前请求这些权限。@Override// 检查是否有写入外部存储的权限// 请求WRITE_EXTERNAL_STORAGE权限} else {// 已经有权限,可以直接使用Toast.makeText(this, "已有写入外部存储的权限", Toast.LENGTH_SHORT).show();@Override。

zhutoubenben的专栏 929

delphi android动态权限,DELPHI安卓动态权限申请

DELPHI安卓动态权限申请安卓8.0以前的版本,只需要给静态权限就可以了,但安卓8.0及以后的版本,还需要运行期用代码动态申请权限。下面以《蓝牙权限》为例,其他权限类似。Delphi 10.3 社区版,提供的 Sample 里面有一个例子程序在:C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Mult...

weixin_26874745的博客 330

delphi10.2android调用摄像头

delphi10.2 android开发调用 并控制摄像头的例子,欢迎大家借鉴

Delphi中给用户设置权限方法

Delphi权限设置

qq_45083002的博客 1324

Delphi 11.3 Android实例-录音与回放(播放MP3)

Delphi 11.3Android实例-录音与回放(播放MP3)

Android 如何实现动态申请权限

OverView 今天在复习的时候,突然复习到我们的相机操作,但是对于相机操作,对于我来说比较复杂的是对于权限的操作。所有我们需要对我们的相机操作进行一些笔记的整理,加深记忆。 开发环境 Android Studio 3.6 Android 11(R) 该笔记使用 java 权限申请的基础知识 学习自:GOOGLE ANDROID DEVELOPERS 对于我们所需要申请的权限我们需要进行如下的操作。 我们需要将所有需要申请的权限添加到App/src/main/AndroidManifest.xml文件中。 但是权限也是分为常规的权限和危险的权限的,对于常规的权限我们的只需要在AndroidM

安卓10 Android Q 权限申请遇到的坑——更严格的动态权限申请和存储权限

安卓10 File类新建文件操作失败的解决方案问题描述具体创建文件方法如下 问题描述 本人刚入安卓app开发的大门,安卓10的File类就把我拒之门外。 我使用了File.makedir()和file.createnewfile()方法,首先申请了权限(这可以肯定),在我的安卓6.0上完美运行,创建了logger.log文件和所需文件夹。然而到了安卓10这里费了一番周折,总是无法建立,方法调用返回...

qq_34352612的博客 8050

CASS3D实战:高效三维房屋与地形采集绘制技巧

本文详细介绍了CASS3D在三维房屋与地形采集绘制中的高效技巧,包括智能绘房功能、不规则结构处理、特殊构件快速绘制及地形数据采集策略。通过实战案例和进阶操作指南,帮助用户快速掌握CASS3D的核心功能,提升三维采集与绘制效率。

weixin_29216049的博客 867

android位置权限动态申请,DELPHI安卓定位权限申请

DELPHI安卓定位权限申请安卓8及以后版本的权限分为静态和动态申请2部分,而之前的安卓版本只需要静态申请权限。1)静态申请定位权限:2)动态申请定位权限:usesSystem.Permissions,{$IFDEF ANDROID}Androidapi.Jni.Os,Androidapi.Helpers,{$ENDIF}...FPermissionCoarseLocation: string;F...

weixin_33895652的博客 883

STM32硬件SPI驱动W25Q128实战:从CubeMX配置到DMA高速读写(附完整代码)

本文详细介绍了如何使用STM32硬件SPI驱动W25Q128 Flash存储器,从CubeMX配置到DMA高速读写的完整实战指南。内容包括硬件连接方案、SPI参数优化、DMA配置技巧以及完整代码实现,帮助开发者快速掌握高速稳定的SPI Flash存储解决方案。

weixin_33734785的博客 184

STM32L433使用DSP库配置过程

STM32L433中有FPU,在使用中为了使用其中的部分函数,需要对其进行配置。     配置成功后做些总结,留待后续复习备忘,同时也希望有朋友像我一样使用DSP库配置时少走弯路,留作交流。

在在在的博客 4550

Android动态权限申请框架

XmPermissions 项目介绍 Android动态权限申请框架 Github地址:https://github.com/lhm0603/XmPermissionsProject 使用说明 XmPermissions 支持 Android 5.0及更高版本,在 Android6.0之前的权限申请默认直接允许。 开始使用 引入 XmPermissions 使用 Android Studio 或者其他 Gradle 构建项目 dependencies { //其他依赖 implementation

h461415832的博客 1572

本地服务器搭建Uptime Kuma网站监控服务

本文主要介绍如何在Linux系统中一键部署Uptime Kuma运维监控服务,并将这个服务映射至公网实现随时随地远程访问。如果您像我一样在服务器上托管了多个网站,并且没有足够的时间来手动检查每个网站的在线状态,那么当出现问题时,您可能无法及时收到通知来处理这些问题。因此,搭建一个在线监控服务是很有必要的,它可以在状态异常时提醒您,以便您能够及时处理问题,确保网站的稳定性和可用性。监控服务有很多,我最终选择了Uptime Kuma,因为Uptime Kuma是开源免费的,

Tiam_cr的博客 1822

Android 动态申请权限

Android 动态申请权限 本文转自:https://blog.csdn.net/losingcarryjie/article/details/80889154,https://blog.csdn.net/htwhtw123/article/details/76032997,有个人轻微修改,请点击链接查看原文,尊重楼主版权。 应用宝,新浪微博,高德地图,等App,请求的方式也都是第一次打开就开始...

鳄鱼泪的博客 3万+

基于RK3588与Gstreamer的端侧实时视频流AI推理系统构建

本文详细介绍了基于RK3588芯片与Gstreamer框架构建端侧实时视频流AI推理系统的完整方案。通过硬件选型、环境配置、OpenCV编译优化、视频流处理实战及模型部署等关键环节的深入解析,展示了如何利用RK3588的6TOPS NPU算力与Gstreamer的低延迟特性,实现工业质检、智能交通等场景下的高效边缘计算。特别针对RTSP推拉流优化、RKNN模型转换等核心技术难点提供了实用解决方案。

weixin_30516243的博客 381

工业相机的检测原理课件(建议收藏)

本课件为各位工程师详细介绍了工业相机的视觉检测原理 ,旨在为工程师调试工业相机的视觉检测原理时提供理论性指导。

Bamboo265925的博客 498

Android 动态权限申请

检查应用是否具有某个危险权限。如果应用具有此权限,方法将返回PackageManager.PERMISSION_GRANTED,并且应用可以继续操作。如果应用不具有此权限,方法将返回PackageManager.PERMISSION_DENIED,且应用必须明确向用户要求权限。如果应用之前请求过此权限但是用户拒绝了此权限,此方法返回true。如果用户在过去拒绝了权限请求,并且在权限请求系统对话框中选择了不再提示这样的选项,此方法将返回false。如果设备规范禁止应用具有此权限,此方法也会返回false。

薛文旺 1783

详述 MIMIC 数据库26张数据表(一)

作者按照自身理解和实验要求对MIMIC-III的26张数据表进行整理归纳并进行介绍。

越努力 越幸运 7237

Android 动态申请应用权限

一、概述 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户。在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在运行时根据用户的需要动态授予。这样就不需要在安装时被强迫同意某些权限。 二、Android系统权限 两个最重要保护级别是正常权限和危险权限: (1)正常权限:涵盖应用需要访问其沙盒外部数据或资源,但对用户隐私或其他应用操作风险很小的区域。这些权限在应用安装时授予,运行时不再询问用户。例如: 网络访问...

晨曦的博客 8171

CAM350常用快捷键

CAM350快捷键 CAM350常用快捷键

bhxc809751502的博客 3056

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

kotlin:安卓开发动态申请多个权限

应用接入支付宝的sdk,需要申请一些权限。 这里是kotlin的代码: 对了:6.0以后有3组,27个权限是需要动态申请的,具体,百度吧。 下面申请了两个权限(要在manifest文件注册哈) //1、首先声明一个数组permissions,将需要的权限都放在里面 val permissions = arrayOf(Manifest.permission.WRITE_E...

2074

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android动态申请悬浮框权限,QT 安卓 悬浮窗权限动态申请

一:申请方式:String ACTION_MANAGE_OVERLAY_PERMISSION = "android.settings.action.MANAGE_OVERLAY_PERMISSION";Intent intent = new Intent(ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName(...

weixin_39633102的博客 1933

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android 需要动态申请的权限和普通权限

可能会触及用户隐私,对设备安全性造成影响的权限,除了要在AndroidManifest.xml中申请,还需要在代码中进行动态权限申请(关于动态申请权限请查看博客。不会直接威胁到用户安全和隐私的权限,只要在AndroidManifest.xml中申请,系统会自动为用户进行授权。),让用户手动进行授权。

UrasakiNakajima的博客 5514
上一篇: Delphi 开发 Android APP 的 BLE 蓝牙的动态权限
下一篇: FireMonkey 界面的玩法
pcplayer
博客等级 码龄26年 633粉丝 284原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值