我需要訪問com.android.internal.telephony.gsm.GsmSmsDispatcher的sendRawPdu方法。如何訪問com.android.internal.telephony.gsm.GsmSmsDispatcher實例?
我已經做了一些研究,發現GSMPhone類包含GsmSmsDispatcher實例。我希望獲得GSMPhone實例PhoneFactory但它似乎是未初始化的(它的靜態變量是null)。
的Android API版本> = 8
我需要訪問com.android.internal.telephony.gsm.GsmSmsDispatcher的sendRawPdu方法。如何訪問com.android.internal.telephony.gsm.GsmSmsDispatcher實例?
我已經做了一些研究,發現GSMPhone類包含GsmSmsDispatcher實例。我希望獲得GSMPhone實例PhoneFactory但它似乎是未初始化的(它的靜態變量是null)。
的Android API版本> = 8
使用反射,你不能訪問Android的內部類。 Android中的每個應用程序都在其自己的進程中運行其自己的Dalvik虛擬機實例。加載到一個進程中的類對另一個進程不可見。因此,當您嘗試從PhoneFactory訪問靜態變量時,最終會使用未初始化的變量加載PhoneFactory類。
你最好將做任何你想要使用Android API完成的事情。有幾種方法可以訪問某些私人Android服務,但它不會讓你太過分。唯一與SMS相關的是isms服務。您可以查看com.android.internal.telephony包中存在的ISms.aidl文件中可用的方法。
也許你應該說明你想完成什麼功能;這樣,有人可能會建議一個可行的方法。 –