Как можно вызывать внешние программы из приложения Android? - PullRequest
0 голосов
/ 04 сентября 2011

Я нашел это: http://gitorious.org/android-obex/pages/Home

Я хотел бы позвонить из моего приложения для Android, кто-нибудь знает, как это сделать?

Ответы [ 2 ]

1 голос
/ 04 сентября 2011

Инструменты командной строки на странице, на которую вы ссылаетесь, по-видимому, предназначены для использования из корневой оболочки adb, доступной на телефонах разработчиков, и могут не использовать версию стека bluetooth, фактически доступную на данном потребительском телефоне.Использование автономных исполняемых файлов также не является «способом Android».Как правило, вы должны встроить код в библиотеку для вызова через jni в процессе вашего приложения, хотя если вам нужно запустить код от имени root на устройстве, где это возможно, то его придется запускать как отдельный процесс (так каксамо ваше приложение не может работать от имени пользователя root.)

Если вы хотите поиграть с этим кодом на рутированном устройстве, найдите один из множества ответов Stack Overflow о том, как выполнить команду su и передать имя и параметры по конвейеру.программы командной строки в нее.Это будет сложно получить работу, без поддержки, и определенно не будет работать на всех устройствах.

Если вы хотите сделать что-то «по-андроидски», обратите внимание на написание или адаптацию кода, чтобы он подключался к текущему Android-интерфейсу Bluetooth для Android.Скорее всего, это будет Java-код, хотя вы можете проверить, есть ли соответствующие нативные API или использовать java-коды из нативного кода через jni.

0 голосов
/ 04 сентября 2011

Вам будет полезно прочитать this :

Три основных компонента приложения - действия, службы и широковещательные приемники - активируются с помощью сообщений,называется намерениями.Intent Messaging - это средство для позднего связывания во время выполнения между компонентами в одинаковых или разных приложениях.

Используя Intents, вы можете запустить действие или службу, а

Объекты намерений, переданные любому из методов широковещания (например, Context.sendBroadcast (), Context.sendOrderedBroadcast () или Context.sendStickyBroadcast ()), доставляются всем заинтересованным широковещательным приемникам .Многие виды широковещательных рассылок происходят из системного кода.

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

Надеюсь, это поможет.

...