Delphi D10.X安卓APP开发中获取硬件信息及手机号

article/2025/11/9 21:07:44

Demo与代码已上传到CSDN下载。
这里简单说一下代码内容,完整代码请自行下载,不清楚的欢迎留言交流。

前言

  • 演示Demo使用了我自己开发的一个控件,TLayoutPro
    Delphi D10.3 LayoutsPro 控件简介 -避免输入焦点被虚拟键盘遮挡》请查看并下载控件代码。当然,这个控件针对于获取安卓设备信息及手机号不是必须的。

需要的权限

需要以下权限:
需要的权限

  • 在高版本的安卓系统中,要想获取到设备信息,需要动态申请权限,在演示代码里已包括,代码可同时在高低安卓版本中使用。

代码说明

获取信息主要是两个部分:

TJBuild

这里面包括了较多的设备信息

  • BOARD 主板
  • BOOTLOADER 系统启动程序版本号
  • BRAND 系统定制商
  • CPU_ABI cpu指令集
  • CPU_ABI2 cpu指令集2
  • DEVICE 设备驱动名称
  • DISPLAY 显示屏参数,设备显示器的版本包(在系统设置中显示为版本号)和ID一样
  • FINGERPRINT 识别码(这个码不是唯一码)通常是一串参数的组合,没太大意义
  • HARDWARE 硬件名称
  • HOST设备主机地址
  • MANUFACTURER 硬件制造商
  • MODEL 版本即最终用户可见的名称
  • PRODUCT 整个产品的名称
  • RADIO 无线电固件版本:使用**getRadioVersion()**代替。
  • SERIAL 硬件序列号
  • TAGS 描述build的标签,如未签名,debug等等。
  • TIME 系统编译时间
  • TYPE 编译的类型
  • USER 固定的,没意义

示例代码(部分):

    // 手机型号(MI XXX)Memo1.Lines.Add('手机型号(MI XXX):' + JStringToString(TJBuild.JavaClass.MODEL));// 设备基板名称Memo1.Lines.Add('设备基板名称:' + JStringToString(TJBuild.JavaClass.BOARD));// 系统启动程序版本Memo1.Lines.Add('系统启动程序版本:' + JStringToString(TJBuild.JavaClass.BOOTLOADER));// 系统定制商Memo1.Lines.Add('设备品牌:' + JStringToString(TJBuild.JavaClass.BRAND));// cpu指令集Memo1.Lines.Add('cpu指令集:' + JStringToString(TJBuild.JavaClass.CPU_ABI));// cpu指令集2Memo1.Lines.Add('cpu指令集2:' + JStringToString(TJBuild.JavaClass.CPU_ABI2));// 设备驱动名称Memo1.Lines.Add('设备驱动名称:' + JStringToString(TJBuild.JavaClass.DEVICE));// 设备显示的版本包(在系统设置中显示为版本号)和ID一样Memo1.Lines.Add('显示屏参数:' + JStringToString(TJBuild.JavaClass.DISPLAY));// 设备制造商Memo1.Lines.Add('设备制造商:' + JStringToString(TJBuild.JavaClass.MANUFACTURER));// 无线电固件版本Memo1.Lines.Add('无线电固件版本:' + JStringToString(TJBuild.JavaClass.getRadioVersion));// 设备的唯一标识。由设备的多个信息拼接合成。 注意,这个码不是唯一 码Memo1.Lines.Add('硬件识别码(这个码不是唯一 码):' +JStringToString(TJBuild.JavaClass.FINGERPRINT));

TelephonyManager

这部分包括了手机信息如卡槽信息、手机卡信息、运营商信息、网络信息等等,演示里也只列了一部分主要内容。

示例代码(部分):

    TelephonyServiceNative := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE);if Assigned(TelephonyServiceNative) thenbeginMemo1.Lines.Add('======================');tryTelephonyManager := TJTelephonyManager.Wrap((TelephonyServiceNative as ILocalObject).GetObjectID);// 手机卡槽数vPhoneCount := TelephonyManager.getPhoneCount;Memo1.Lines.Add('卡槽数:' + vPhoneCount.ToString);// 插卡数vSubscriptionManager := TJSubscriptionManager.JavaClass.from(TAndroidHelper.Context);vSubManagerCoun :=vSubscriptionManager.getActiveSubscriptionInfoCount();Memo1.Lines.Add('插卡数:' + vSubManagerCoun.ToString);// 设备IDMemo1.Lines.Add('DeviceId_1:' + JStringToString(TelephonyManager.getDeviceId(0)));if vPhoneCount > 1 thenMemo1.Lines.Add('DeviceId_2:' +JStringToString(TelephonyManager.getDeviceId(1)));// 硬件ImeiMemo1.Lines.Add('Imei_1:' + JStringToString(TelephonyManager.getImei(0)));if vPhoneCount > 1 thenMemo1.Lines.Add('Imei_2:' + JStringToString(TelephonyManager.getImei(1)));// 硬件MeidtryMemo1.Lines.Add('Meid_1:' + JStringToString(TelephonyManager.getMeid(0)));excepton E: Exception doend;tryif vPhoneCount > 1 thenMemo1.Lines.Add('Meid_2:' + JStringToString(TelephonyManager.getMeid(1)));excepton E: Exception doend;// SubscriberIdMemo1.Lines.Add('SubscriberId(IMSI号):' +JStringToString(TelephonyManager.getSubscriberId));// Line1NumberMemo1.Lines.Add('Line1Number:' + JStringToString(TelephonyManager.getLine1Number));//分别取各卡槽信息for I := 0 to vSubManagerCoun-1 dobeginvSubscriptionInfo:=vSubscriptionManager.getActiveSubscriptionInfo(I+1);Memo1.Lines.Add(I.ToString+'手机号: ' + JStringToString(vSubscriptionInfo.getNumber));Memo1.Lines.Add(I.ToString+'使用卡槽: ' + (vSubscriptionInfo.getSimSlotIndex+1).ToString);Memo1.Lines.Add(I.ToString+'运营商: ' + JCharSequenceToStr(vSubscriptionInfo.getCarrierName));end;exceptend;end;

获取信息展示

在这里插入图片描述
在这里插入图片描述

相关文章导读

Delphi D10.3 LayoutsPro 控件简介 -避免输入焦点被虚拟键盘遮挡
《Delphi安卓APP获取手机信息》源码下载地址
点击上面标题后直接查看


欢迎光顾本人小店:(https://shop63778938.taobao.com/)
小店也提供delphi方面其他技术支持、定制开发。

现在就进店看看

大家有什么不清楚的,可以给我留言讨论
以上信息对您有用的话请点赞收藏,就下面这行


http://chatgpt.dhexx.cn/article/cxctaakK.shtml

相关文章

饿了么虚拟号码可以发短信吗_饿了麽APP逆向及爬虫实现详参

一、前言 今天主要以饿了麽为例,讲解一下APP逆向的大致流程,以及遇到问题的处理办法。 二、概述 APP逆向的目的是为了了解APP本身的运行逻辑,进行修改或进行还原。涉及到的技术和工具,见下图。 对于抓包我就不详细讲了,不清楚的看一下我之前的文章。 HTTPS抓包与手机抓包,…

手机app访问服务器数据库数据库文件夹,手机app怎么访问服务器数据库

手机app怎么访问服务器数据库 内容精选 换一换 华为云提供两种连接方式通过SQL Server客户端连接实例:非SSL连接和SSL连接。其中,SSL连接实现了数据加密功能,具有更高的安全性。准备弹性云服务器通过内网连接华为云关系型数据库实例,您需要购买一台弹性云服务器。创建并连接…

mysql-修改数据存储位置

前提:win10 ,c盘不够用,将mysql存储位置改为d盘。 参考文章指路在这里:Windows10下配置自定义的MySQL8的数据存储路径_反反复复的昵称的博客-CSDN博客_mysql8 windows 配置文件路径 1、停止mysql的服务 2、找到文件存储的路径…

如何抓包微信小程序修改数据

如果通过手机接入电脑作为代理抓包,其实相对要复杂得多,但是有的游戏转发出来,在电脑端打开,就不能正常进行。 所以我们要解决的第一个问题是,在微信电脑端打开小程序,方法很简单。 进入游戏中,…

达梦数据库更改数据文件路径

在日常运维的时候偶尔会遇到由于前期磁盘规划等原因,或者资源限制等原因,在数据不断增长的情况下。要移动数据文件目录的情况。具体操作如下。 原来目录是:/dmdata 新目录是:/newdata 1.记录原环境信息。 2.停止数据库相关服务…

powerbi 修改数据源路径

将本地Excel文件导入power bi成为数据源,如果文件路径改动,在更新数据时就会出现错误。 更正路径的方法: 首先点击‘转换数据’ 点击 ‘数据源设置’ 选择出错的数据源,点击最左侧的‘更改源’ 选择正确的路径即可

oracle修改数据文件名称

环境:ora10g 在一次添加数据文件时,错把文件名写成了别的表空间的名称,虽然不改不影响数据库,但是后期维护可能会造成不便。生产环境不方便操作测试,因此在测试机上也试一下。 首先百度了下,网上说有三种…

Mysql修改数据存储目录

修改已经使用的mysql数据存储目录 1. 查询Mysql数据存储原来的存储目录 cat /etc/my.cnf2. 建立新的Mysql存储目录 mkdir /home/mysqldata3. 将数据文件copy到新目录 cp -R /var/lib/mysql /home/mysqldata/4. 设置新目录权限 chown -R mysql:mysql /home/mysqldata5. 修改…

vue3 操作修改数据

vue2.x改变数据&#xff1a; <template> <div class"v2"> 这是数据展示&#xff1a; <div v-for"item in nm" :key"item">name: {{item.name}}, type: {{item.type}}</div> <div click"chfn">点击改变数…

clickhouse修改数据存储目录

clickhouse默认数据目录是&#xff1a; /var/lib/clickhouse。 修改方案&#xff1a;先停止数据库&#xff0c;然后转移该目录到指定位置&#xff0c;最后软连接回原地址并启动&#xff1b;即无需修改config.xml实现对数据目录的修改。 1、停止数据库 service clickhouse-ser…

SQL Server 修改数据

1.Insert Into语句&#xff1a; Insert Into语句用于向表中新增数据。 语法&#xff1a;Insert Into有两种编写方式&#xff1a; ①不需要指定插入数据的列名&#xff0c;只需提供插入值&#xff0c;不指定要插入数据的列名&#xff0c;需要列出插入行的每一列数据&#xff…

ORACLE 修改数据

今天说一下ORACLE修改数据库中数据的几种方法: 1、UPDATE 确定条件批量修改 --批量修改 UPDATE cux_oa_person_b t --表名 SET t.person_number 111 --需要修改的数据 WHERE t.person_name xxx --条件 2、FOR DATE 可视化修改 --与查询一样&#xff0c;只是后面多了 FOR…

数据库修改数据类型

数据库修改数据类型 在日常使用数据库中&#xff0c;或多或少都会遇到要修改数据库表中字段的数据类型&#xff0c;有一种方法是直接点“设计”&#xff0c;就可以修改了&#xff0c;但往往都不行&#xff0c;会提示为“不允许保存修改” 那就用另一种方法。可以看到&#xff…

SQLServer修改数据

数据库的修改数据要用到insert这个语句,使用INSERT 语句向表中添加新行 首先表的名称通过模式名称引用表名称其中,其次表名称后的括号内要指定要在其中插入数据的一个或多个列的列表。必须将列列表括在括号中并用逗号 分隔列。 如果列在列列表中没有出现&#xff0c;则SQL Serv…

Fiddler抓包,并修改请求数据

浏览器抓包&#xff08;工具&#xff1a;fiddler&#xff09;并 修改请求内容 工具下载&#xff1a;https://pan.baidu.com/s/1pyKdAwgTdNNvoWA2bGlk9A 1、正常打开网页&#xff0c;输入要提交的内容 2、打开工具&#xff0c;f11暂停了页面的所有提交动作 3、这时再点击提…

开源的在线答题小程序分享

联系方式 大家如果对在线答题类小程序感兴趣或者是小程序开发者欢迎与我联系&#xff0c;请备注"小程序" 相关介绍 从业资格&#xff0c; 主要面向金融用户&#xff0c;提供证券从业资格真题题库、基金从业资格考试真题题库&#xff0c;后面会拓展其他类目的从业资格…

追格小程序(知识付费与圈子社区小程序)框架正式开源

项目介绍 追格小程序是一个积木式小程序搭建框架&#xff0c;基于UniappWordPress开发&#xff0c;代码免费开源不加密且支持二开&#xff0c;安装追格相应扩展模块&#xff0c;简单配置即可快速搭建不限于圈子社区、知识付费、活动报名、资讯等类型小程序。 gitee下载&#…

saas商业级的小程序商城(已开源)

weiit-saas是一款Java开源项目&#xff0c;属于weiit团队自研产品&#xff0c;意在通过技术封装&#xff0c;让企业无需代码开发&#xff0c;帮助企业一键生成小程序、公众号&#xff0c;让企业拥有独立品牌的自营商城。产品竞争对手《有赞》、《微盟》。 weiit新版saas已经上…

开源一个golang小程序商城后台系统(moshopserver)

开源一个golang小程序商城后台系统&#xff08;moshopserver&#xff09; 开源一个golang小程序商城后台&#xff08;moshopserver&#xff09; golang和c/c比起来是一门新的语言&#xff0c;一直想学&#xff0c;网上搜集了一些资料&#xff0c;有些人说很容易上手&#xff0c…

效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码 微信小程序开源了

⭐零、教程概述 效果最接近《羊了个羊》&#xff08;卡牌堆叠游戏&#xff09;的开源代码&#xff0c;有数据库和关卡。 我写的程序是指 卡牌堆叠游戏 &#xff0c;效果与羊了个羊一致。本教程有已有两个版本。 本来是想着Fork多一点的时候再开源的&#xff0c;没有想到一个F…