【问题标题】:How can external programs be called from an Android app?如何从 Android 应用程序调用外部程序?
【发布时间】:2011-11-10 00:24:27
【问题描述】:

我找到了:http://gitorious.org/android-obex/pages/Home

我想从我的 Android 应用中调用它,有人知道怎么做吗?

【问题讨论】:

    标签: android obex


    【解决方案1】:

    您链接的页面上的命令行工具似乎旨在从开发人员手机上可用的根 adb shell 中使用,并且可能未使用给定消费类手机上实际可用的蓝牙堆栈版本。使用独立的可执行文件也不是“android 方式”。通常,您应该将代码构建到库中以在应用程序进程中通过 jni 调用,但如果您需要在可能的设备上以 root 身份运行代码,则必须将其作为单独的进程运行(因为你的应用程序本身不能以 root 身份运行)。

    如果您想在有根设备上使用此代码,请查找有关如何执行 su 命令并将命令行程序的名称和参数输入其中的众多 Stack Overflow 答案之一。这将很难工作,不受支持,并且绝对不会在所有设备上工作。

    如果您想以“android 方式”做事,请考虑编写或修改代码,以便插入当前的 android 蓝牙 api。这很可能是 java 代码,不过您可以检查是否有适当的本机 API 或通过 jni 使用本机代码中的 Java。

    【讨论】:

      【解决方案2】:

      阅读this对你很有用:

      应用程序的三个核心组件——活动、服务、 和广播接收器——通过消息激活,称为 意图。意图消息传递是一种用于后期运行时绑定的工具 相同或不同应用程序中的组件之间。

      使用 Intent 可以启动活动或服务,并且

      传递给任何广播方法(例如 Context.sendBroadcast()、Context.sendOrderedBroadcast() 或 Context.sendStickyBroadcast())的 Intent 对象被传递给所有感兴趣的广播接收器。多种广播源自系统代码。

      因此,您需要做的就是确定哪些 Intent 可以接收您想要启动的应用程序,并发送特定的广播意图。如果安装了应用程序,它将被启动,否则什么都不会发生。

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-22
        • 1970-01-01
        • 1970-01-01
        • 2023-04-04
        • 2019-07-05
        • 1970-01-01
        相关资源
        最近更新 更多