我想编写一个通过以下方式监视配对的蓝牙连接的应用程序:
如果文件来自配对的源,则应将其存储.如果没有文件通过且蓝牙连接断开,则我的应用程序应存储一个虚拟文件.
存储文件的工作原理非常好,我的主要问题是如何在不进行显示活动的情况下运行整个程序.
我了解了很多有关服务的知识,但大多数情况下都说服务取决于活动/应用程序…对吗?
还有其他可能实现这样的事情吗?广播接收器呢?如何编程此功能?
我期待着阅读您的(创造性)答案;-)
问候,Poeschlorn
解决方法:
如您所料,您可以使用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));
}
}
您的服务将处理创建虚拟文件:
@Override
public void onCreate() {
// Create the dummy file, etc...
}
您还需要执行诸如检查断开连接的设备等操作,但这应该可以帮助您入门.另外,我从未使用过蓝牙堆栈,但是我认为这是相关的动作名称.