我想用以下方式编写一个应用程序来监控我配对的蓝牙连接:
如果文件来自成对的源,则应将其存储。如果没有文件通过,蓝牙连接中断,我的应用程序将存储一个虚拟文件。
存储文件非常有效,我的主要问题是如何在不显示活动的情况下运行整个文件…
我读了很多关于服务的文章,但大多数人都说服务取决于一个活动/应用……对吗?
有没有其他可能实现这样的事情?广播接收器呢?如何编程此功能?
我期待着阅读你的(创造性的)答案;-)
你好,诗人

最佳答案

如您所料,您可以使用BroadcastReceiverService来完成此操作。您将设置广播接收器以处理“蓝牙断开连接”事件,然后关闭该服务以对其进行处理。
在舱单上,声明你的接收人:

<receiver android:name=".YourReceiver">
    <intent-filter>
        <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED"/>
    </intent-filter>
</receiver>

在您的BroadcastReceiver中,您将执行以下操作:
@Override
public void onReceive(Context context, Intent intent) {

    if (intent.getAction().equals(BluetoothDevice.ACTION_ACL_DISCONNECTED)) {
        context.startService(new Intent(context, YourService.class));
    }
}

您的Service将处理创建虚拟文件:
@Override
public void onCreate() {
    // Create the dummy file, etc...
}

你还需要做一些事情,比如检查正在断开连接的设备,等等,但这会让你开始。另外,我从未使用过蓝牙堆栈,但我认为这是相关的操作名称。

09-10 07:05
查看更多