2015-10-06 4 views
0

Я хочу вызвать функции, предоставленные в com_android_bluetooth_hid.cpp в источнике Android из моего собственного приложения. Целевые версии Android:> = 4.4 и < = 5.x. Я понимаю JNI и могу скомпилировать свой собственный код и позвонить из своего собственного приложения.Вызвать код cpp для Android из вашего приложения

Можно ли назвать библиотеку андроида из моего приложения? Как

Кроме того, для вызова функций в этом конкретном файле cpp необходимы разрешения BLUETOOTH и BLUETOOTH_ADMIN или что-то еще (другое разрешение или корень)?

+0

Мне нужно получить (специфичные для поставщика) скрыть отчеты с моего устройства. В настоящее время система Android работает со всеми отчетами. Просмотрев код, я обнаружил, что 'get_report_cb' в' sBluetoothHidCallbacks' оставлен в этом коде NULL. Также класс 'BluetoothInputDevice' не имеет интерфейса обратного вызова для получения этих отчетов. Поэтому я хочу разместить свою собственную функцию обратного вызова и взаимодействовать с этим кодом непосредственно в своем приложении, обойдя java-стек Android, если это необходимо. – GPS

ответ

0

Самый чистый способ вызова кода CPP для Android - это, как правило, копирование соответствующих фрагментов в ваш репозиторий и создание как часть вашего приложения. Следуя этому подходу, ваше приложение будет вызывать только общедоступные API - либо Java, либо C/C++.

Но это может быть не актуально в тех случаях, когда этот код должен выполняться со специальными разрешениями, например, в виде системного сервиса, например медиаберивателя или Bluetooth.

Я боюсь, что код, который вы хотите запустить, относится к этой второй категории, поэтому ни один из доступных трюков не поможет.

С другой стороны, пользовательский ПЗУ может быть решением, которое вы ищете. Может случиться так, что вам не нужно подделывать полную систему. Этого может быть достаточно, чтобы использовать корневое устройство и заменить службу bluetooth на свой собственный.

Я бы порекомендовал вам предоставить отсутствующие обратные вызовы для службы, вместо того, чтобы вызывать функции непосредственно из вашего приложения: лучше не смешивать контексты между приложением пользовательского пространства и системным сервисом.

+0

'Я бы по-прежнему советовал вам предоставить недостающие обратные вызовы для службы. Под этим вы имели в виду, чтобы обеспечить обратные вызовы каким-либо образом в ванильной системе или в замененном сервисе bluetooth с помощью пользовательского rom/rooting? Спасибо – GPS

+0

Предоставить обратные вызовы через пользовательский ROM/rooting –

+0

Я надеялся, что будет какой-то способ сделать это без разрешения root/пользовательского рома, поэтому лучше всего спросить пожилых людей. Спасибо за ваш ответ. – GPS

Смежные вопросы