Как получить доступ к экземпляру com.android.internal.telephony.gsm.GsmSmsDispatcher? - PullRequest
1 голос
/ 10 августа 2011

Мне нужен доступ к методу com.android.internal.telephony.gsm.GsmSmsDispatcher sendRawPdu .

Я провел небольшое исследование и обнаружил, что класс GSMPhone содержит экземпляр GsmSmsDispatcher . Я надеялся получить GSMPhone экземпляр от PhoneFactory , но он, кажется, не инициализирован (это статические переменные null ).

Версия Android API> = 8.

1 Ответ

4 голосов
/ 10 августа 2011

Вы не можете получить доступ к внутренним классам Android, используя отражение.Каждое приложение в Android запускается в своем собственном процессе со своим собственным экземпляром Dalvik VM.Классы, загруженные в одном процессе, не видны другому процессу.Поэтому, когда вы пытаетесь получить доступ к статическим переменным из PhoneFactory, вы заканчиваете тем, что загружаете класс PhoneFactory с неинициализированными переменными .

. Лучше всего будет делать все, что вы хотите, используя API-интерфейсы Android,Есть несколько способов получить доступ к некоторым частным сервисам Android, но это не слишком далеко.Единственным релевантным для SMS является услуга isms .Вы можете просмотреть доступные в нем методы в файле ISms.aidl, представленном в пакете com.android.internal.telephony.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...