我正在使用 Android 编写一些 JNI 代码,并且正在寻找一种从设备中查询移动设备标识符 (MEID) 的方法。
http://en.wikipedia.org/wiki/Mobile_equipment_identifier
我正在尝试编写可以在 Android 设备上自行运行的 C 或 C++ 代码,所以我认为我不能使用 Java(即从 获取 MEID TelephonyManager
)。
搜索 StackOverflow 发现:是否有我可以用来获取设备的 IMEI/MEID 的 android shell 或 adb 命令?
好的很好,dumpsys iphonesubinfo
可以得到我需要的信息。它有效!
dumpsys
除了作为 Android 源代码的一部分,我找不到源代码。所以我下载了那个......我的硬盘在下载完成之前就已经装满了,但我确实得到了dumpsys
. 这是一个非常短的 C++ 文件。它所做的只是查询Android的IBinder
界面。
所以,我的问题:
0) 有什么方法可以编写一个查询来反对IBinder
只使用 NDK 中的东西吗?使用的包含文件dumpsys.cpp
不在 NDK 中,并且grep
在 NDK 目录中没有找到IBinder
任何包含文件或代码示例,所以我的猜测是“否”(但我想是错误的)。
1)还有其他获取MEID的好方法吗?
我认真地认为我应该只使用system("dumpsys iphonesubinfo > /tmp/myprogname_dumpsys.tmp"
然后打开生成的文件并解析它。这应该可行,但我很难称它为优雅......而且我不确定是否dumpsys
在每个 Android 设备上都可用。
system()
编辑:使用运行的想法dumpsys
将行不通,因为dumpsys
需要android.permission.DUMP
和 Android 不再允许非系统应用程序拥有该权限。