Android:关闭/丢失蓝牙连接或文件接收 - >做一点事

时间:2010-05-25 13:50:42

标签: android service bluetooth broadcastreceiver

我想用以下方式编写一个监控配对蓝牙连接的应用程序:

如果文件来自配对来源,则应存储该文件。如果没有传递文件并且蓝牙连接中断,我的应用程序将存储一个虚拟文件。

存储文件效果很好,我的主要问题是如何在我的显示器上没有活动的情况下运行整个文件....

我读了很多关于服务的内容,但大多数情况下说服务取决于某个活动/应用程序......是吗?

还有其他可能实现这样的事情吗?广播接收器怎么样?我该如何编程这个功能?

我期待着阅读你的(创意)答案;-) 很高兴的问候,poeschlorn

1 个答案:

答案 0 :(得分:4)

正如您所猜测的,您可以使用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...
}

您还需要执行诸如检查正在断开连接的设备等操作,但这应该可以帮助您入门。此外,我从未使用蓝牙堆栈,但我认为这是相关的操作名称。