#android #sdk #include
#Android #sdk #включить
Вопрос:
Я новый разработчик для программирования на Android. Я понимаю, что Android SDK не содержит всех классов из исходного кода Android. Например, AtCommandResult.class отсутствует (скрывается) в пакете android.bluetooth в SDK.
Иногда, однако, я хочу использовать скрытый код в своем приложении, и мне интересно, как лучше всего это сделать. Один из подходов, который я могу придумать, — включить соответствующий исходный код в мой проект с другим именем пакета, чтобы избежать конфликта с существующим ядром. Но проблема с этим подходом заключалась бы в том, что с этого момента мне пришлось бы самостоятельно поддерживать код. Один или два класса в порядке, но вы знаете, к чему я клоню.
Есть ли какой-либо лучший способ, кроме как беспокоить Google, чтобы включить код в SDK? Заранее спасибо.
Комментарии:
1. в корневом телефоне это возможно.
2. @Padma Я не уверен, как мой вопрос связан с корневым телефоном, поскольку я задаю вопрос относительно программирования. Можете ли вы уточнить?
Ответ №1:
Возможно, вы захотите использовать .Файл AIDL:
http://developer.android.com/guide/developing/tools/aidl.html
Они уже могут использоваться для доступа, например, к функциям телефонии.
Пример кода здесь: http://code.google.com/p/auto-answer/source/browse/trunk/src/com/android/internal/telephony/ITelephony.aidl?r=13
Комментарии:
1. Я не совсем понимаю, о чем вы здесь говорите. В моем проекте я в основном хочу использовать класс, который SDK не предоставляет, но который есть в телефоне Android. Как aidl может решить эту проблему?
2. Aidl подобен интерфейсу для существующего класса. Для его компиляции вам не обязательно использовать исходный код класса, только пакет и методы.
3. О, я понимаю, о чем ты говоришь. Поскольку класс уже существует, я могу просто создать интерфейс и заглушку для него и делать с ним все, что захочу. Мне это нравится! Это намного лучше, чем я первоначально думал. Спасибо