android - 如何访问 com.android.internal.telephony.gsm.GsmSmsDispatcher 实例?

标签 android reflection

我需要访问 com.android.internal.telephony.gsm.GsmSmsDispatcher 的 sendRawPdu 方法。

我做了一些研究,发现 GSMPhone 类包含 GsmSmsDispatcher 实例。我希望从 PhoneFactory 获得 GSMPhone 实例,但它似乎未初始化(它的静态变量是 null)。

Android API 版本 >= 8。

最佳答案

您不能使用反射访问 Android 的内部类。 Android 中的每个应用程序都在自己的进程中运行,并带有自己的 Dalvik VM 实例。在一个进程中加载​​的类对另一个进程不可见。因此,当您尝试从 PhoneFactory 访问静态变量时,您最终会加载带有未初始化变量的 PhoneFactory 类。

您最好使用 Android API 做任何您想完成的事情。有几种方法可以访问某些私有(private) Android 服务,但不会让您走得太远。与 SMS 唯一相关的是 isms 服务。您可以在 com.android.internal.telephony 包中的 ISms.aidl 文件中查看其中可用的方法。

关于android - 如何访问 com.android.internal.telephony.gsm.GsmSmsDispatcher 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7014317/

相关文章:

Android:measureText() 根据缩放像素返回像素

java - 安卓长触事件

c# - 反射 MemberInfo 到 Func<T1, T2>

c# - 使用反射在结构和类之间复制等效属性

android - 如何解决此抽屉导航问题

android - Kotlin 中的按钮数组

java - Android Studio (1.5.1) -- 错误 : cannot find symbol class/App won't run

c# - 是否可以在隔离环境中执行上传的.NET 代码?

c# - 在 C# 中使用 PropertyInfo 的奇怪问题

c# - GetType() 和 GetType().UnderlyingSystemType 之间的区别