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

Delphi Android READ_PHONE_STATE未触发

Delphi是一种集成开发环境(IDE),用于创建跨平台应用程序。它支持多种编程语言,包括Object Pascal和C++。Delphi Android READ_PHONE_STATE未触发是指在Delphi开发的Android应用程序中,未触发READ_PHONE_STATE权限。

READ_PHONE_STATE权限允许应用程序读取设备的电话状态和身份信息,例如设备的电话号码、IMEI号码等。这个权限通常用于实现一些与电话相关的功能,例如拨打电话、发送短信等。

在Delphi中,要在Android应用程序中触发READ_PHONE_STATE权限,需要进行以下步骤:

  1. 在项目文件中添加权限声明:在项目文件(.dproj)中的<AndroidManifest>节点下添加以下代码:
代码语言:txt
复制
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
  1. 请求权限:在应用程序启动时,可以使用Delphi提供的TPermissions类来请求READ_PHONE_STATE权限。例如:
代码语言:txt
复制
uses
  Androidapi.JNI.Os,
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.Helpers,
  Androidapi.JNI.JavaTypes,
  Androidapi.JNI.Telephony;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if TPermissions.CheckPermission('android.permission.READ_PHONE_STATE') <> TPermissionStatus.Granted then
  begin
    TPermissions.RequestPermissions([TJManifest_permission.JavaClass.READ_PHONE_STATE], procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
    begin
      if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
      begin
        // 权限已授予,可以执行相关操作
      end
      else
      begin
        // 权限未授予,无法执行相关操作
      end;
    end);
  end
  else
  begin
    // 权限已授予,可以执行相关操作
  end;
end;

以上代码会在按钮点击事件中检查READ_PHONE_STATE权限是否已经授予,如果未授予则请求权限。请求权限的结果会在回调函数中处理。

READ_PHONE_STATE权限的应用场景包括但不限于:

  • 获取设备的电话号码
  • 获取设备的IMEI号码
  • 监听电话状态变化
  • 发送短信等与电话相关的功能
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DelphiAndroid下使用Java库的方法

本文将以Android的USB串口通讯库为例,介绍Delphi如何在Android中使用Java的库。   ...中将SDK路径指向Delphi的SDK路径(避免重复安装SDK)   3.下载UsbSerial,用Android Studio打开,   3.1Android Studio设置(File- Settings...Delphi自带的dex文件分为Debug版本,和Release版本,路径分别在%BDS%\lib\android\Debug,%BDS%\lib\android\Release 继续在cmd.exe中...此处的classes.jar即为usbserial编译后的java类库,生成Delphi的接口文件Android.JNI.UsbSerial.pas 五.使用Java类库 在Delphi工程中引用Android.JNI.UsbSerial.pas...总结 以上所述是小编给大家介绍的DelphiAndroid下使用Java库的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

2K20
  • html复选框选中与选中触发事件的方法

    今天,当制作一个不需要from表单的复选框来提交数据的小函数时,需要在复选框被选中或选中的情况下修改一些后台数据。我想到了用js代码来监控复选框的状态,并将实时数据发送到后台。...复选框选择和取消选择触发事件的方法。 Jq代码_ _点击复选框触发事件我是复选框。 $('#isbox ')。单击(函数(){ 如果($(这个)。...; } }); 本机JS代码_ _单击复选框触发事件。 例如:我是复选框。...功能检查(e) 如果(已检查){ console . log(“checked”); }否则{ Console.log('选中'); } } 例如:我是复选框。...onclick=function(){ if(this.checked){ console . log(“checked”); }否则{ Console.log('选中'); } }; PS:上面两个原生

    4.9K40

    进阶必备-Android Click事件是怎么触发的?

    public Button(Context context, AttributeSet attrs) { this(context, attrs, com.android.internal.R.attr.buttonStyle...所以,我们猜测是在MotionEvent.ACTION_UP事件后触发click的。所以我们直接看if条件中的ACTION_UP中的逻辑: if (!...然后会通过Post Runable的方式将PerformClick的实例post到队列中等待处理,不直接去处理click事件而是使用post的方式是确保如果有视图相关的更新操作完成后再触发performClickInternal...// 赋值操作 getListenerInfo().mOnClickListener = l; } 至此,onClick事件是如何从onTouchEvent中触发的就可以完全看出来了...因为onCLick事件是在手指抬起后触发的,所以我们选择分析的是ACTION_UP事件,但是长按事件是在我们长按某个View的时候触发的,所以并没有将手指抬起来。

    2.2K20

    Android 开发者必知必会的权限管理知识

    导语 本文主要讲解了Android 权限管理方面几个点: Android 权限背景知识; 权限检查及权限兼容; 跳转到app管理权限页面 一、Android 权限背景知识 提到Android 权限管理,...下面将会以自己开发过程中遇到的问题进行展开 ,目前企鹅FM支持免流了,需要使用READ_PHONE_STATE权限 (读取SIM卡状态),由于之前对改权限是否关闭没有进行相关判断,因此收到了很多例因为上述权限关闭...因为使用 READ_PHONE_STATE 权限的方法内部已经try catch ,外面无法捕获,因此该方法失效。...在6.0(API 23)以下,通过反射是找不到的,因此对于READ_PHONE_STATE权限检查仅限于6.0及6.0以上。...(一一验证,毕竟没那么多手机) 那是不是前人经验一定对了,那就不一定了,在当时可能是对的,在现在可能就行不通了,现在以MIUI跳转到app 权限管理页面为例进行说明。

    1.7K60

    android recent key长按事件弹起触发最近列表故障分析

    BEHAVIOUR: long press the recent key,it will exit the split screen and enter dialer full screen 环境描述 android7.0.1...Runnable) 我们一睹mCheckLongPress芳容 如果按下了,长按了,调用performLongClick 触发onlongclick消息,否则如果支持长按,我们发送长按事件。...=0时,如果doIt否,代表我们此时是长按弹起,如果 mCode有值,我们触发sendEvent(KeyEvent.ACTION_UP, KeyEvent.FLAG_CANCELED);(我们的问题点就在这里...这里我们看到,在我们弹起的时候,触发了toggleRecentApps 进入最近列表,引出此故障。...B在recent 的 KeyButtonView.java里面,up有段代码,判断了是否有mCode,如果有,则会在长按后在释放按键时触发send,而如果没有mCode,则没有动作,因此我们可以修改此处的

    1.5K50
    领券