我想用以下方式编写一个应用程序来监控我配对的蓝牙连接:
如果文件来自成对的源,则应将其存储。如果没有文件通过,蓝牙连接中断,我的应用程序将存储一个虚拟文件。
存储文件非常有效,我的主要问题是如何在不显示活动的情况下运行整个文件…
我读了很多关于服务的文章,但大多数人都说服务取决于一个活动/应用……对吗?
有没有其他可能实现这样的事情?广播接收器呢?如何编程此功能?
我期待着阅读你的(创造性的)答案;-)
你好,诗人
最佳答案
如您所料,您可以使用BroadcastReceiver
和Service
来完成此操作。您将设置广播接收器以处理“蓝牙断开连接”事件,然后关闭该服务以对其进行处理。
在舱单上,声明你的接收人:
<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...
}
你还需要做一些事情,比如检查正在断开连接的设备,等等,但这会让你开始。另外,我从未使用过蓝牙堆栈,但我认为这是相关的操作名称。