Android 2.3 с использованием внешнего стека JAIN-SIP(J-SIP) | Classpath
Я пытаюсь использовать библиотеку JAIN-SIP (J-SIP) на Android 2.3.3. (http://jsip.java.net/) Поэтому я использовал очень простое приложение-пример SIP, которое поставляется вместе с SIP-стеком. Этот пример отлично работает на устройствах Android <= Android 2.2.
Проблема в том, что в Android 2.3.3 есть SIP-Strack с системными библиотеками, который является слегка измененной версией стека JAIN-SIP. Таким образом, на устройствах Android 2.3.3 загружается внутренний SIP-стек (из-за тех же имен пакетов / библиотек) вместо JAIN-SIP, который поставляется с APK, и приложение вылетает с исключениями "функция не найдена" (из-за факт, что некоторые функции не существуют во внутреннем SIP-стеке Android 2.3.3).
Что я не хочу знать, так это то, как я могу "расставить приоритеты" в своем стеке JAIN-SIP, который поставляется с APK, и игнорировать SIP-стек системы Android.
Одно из решений заключается в использовании внутреннего SIP-стека directyl, который настоятельно не рекомендуется, потому что никто не знает, не будет ли он изменен в следующих выпусках Android.
Другое решение, которое пришло мне в голову, - это изменение имен пакетов "моего" стека JAIN-SIP, чтобы он не смешивался с внутренним SIP-стеком.
Объявление использование-библиотеки в manifest.xml не работает, потому что оно только для внутренних SDK-libs / SDK-Addons.
Есть еще идеи?
2 ответа
Мы рассматриваем доставку jar-файлов, которые позволили бы встраивать JSIP-стек в любые устройства Android, переименовывая все классы javax с помощью инструмента пост-конвертации и публикуя jar вместе с обычными jsip-jar-файлами. См. https://groups.google.com/d/topic/mobicents-public/UD7ZTX74Yrk/discussion
джинсовый
Я применил предложенное решение и переименовал пакеты в JSIP-стеке с помощью функции Eclipse Refactoring и получил стек JSIp, работающий на эмуляторе Android 2.3.3 и устройстве. В примерах и в классе "SipStackImpl.java" есть строки пути к пакету, которые должны быть переименованы (найдены / заменены) вручную для новых путей к новым пакетам.
Я проверил это с помощью образцов стрелка и стрелка из стека JSIP.
Он также работал на Android 2.2 в эмуляторе.
Если бы кто-то мог придумать лучшее решение, я бы оценил его.