首页
学习
活动
专区
工具
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号码
  • 监听电话状态变化
  • 发送短信等与电话相关的功能
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 因为Android M权限问题导致的"Permission Denial: reading com.android.providers.media.MediaProvider"解决办法

    最后查明是因为API过高权限访问有修改, 在API级别>=23时, 权限访问被分为三个级别, 分别为”PROTECTION_NORMAL, PROTECTION_DANGEROUS, 和PROTECTION_SIGNATURE(还有两个标志可以和SIGNATURE联合使用才有意义)”. PROTECTION_NORMAL是普通权限, 通过manifest文件在安装时被授予. PROTECTION_SIGNATURE是签名权限, 通过”检查manifest和app签名是否匹配app中声明的权限”在安装时授予. 对于 PROTECTION_DANGEROUS, 不仅需要在manifest中声明, 还需要在运行时通过requestPermissions获得, 也就是弹出来一个个对话框, 让用户确认是否授予app这些权限. 这些是常见PROTECTION_DANGEROUS权限, 如果你在程序中使用了, 那么在API>=23, 很可能会不正常工作. ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION ADD_VOICEMAIL BODY_SENSORS CALL_PHONE CAMERA GET_ACCOUNTS PROCESS_OUTGOING_CALLS READ_CALENDAR READ_CALL_LOG READ_CELL_BROADCASTS READ_CONTACTS READ_EXTERNAL_STORAGE READ_PHONE_STATE READ_SMS RECEIVE_MMS RECEIVE_SMS RECEIVE_WAP_PUSH RECORD_AUDIO SEND_SMS USE_SIP WRITE_CALENDAR WRITE_CALL_LOG WRITE_CONTACTS WRITE_EXTERNAL_STORAGE

    02
    领券