连接蓝牙设备时启动应用程序

时间:2017-05-21 22:53:21

标签: android bluetooth broadcastreceiver

当连接某个蓝牙设备时,如何在我的Android手机中启动应用程序?

我试图用广播接收器做这个,但我有一个问题......当我完成活动(退出应用程序)时,广播接收器必须是未注册的...所以没有办法听连接设备......

申请完成后如何让这个广播接收器保持活着状态?

由于

编辑:

public class AutostartReceiver extends BroadcastReceiver
{
    /**
     * @param context Context
     * @param intent Intent
     * @return void
     */
    @Override
    public void onReceive(Context context, Intent intent)
    {

        String action = intent.getAction();

        switch (action)
        {
            case BluetoothDevice.ACTION_ACL_CONNECTED:
                Log.v("PAREK", "cnn");
                break;

            case BluetoothDevice.ACTION_ACL_DISCONNECTED:
                Log.v("PAREK", "dnn");
                break;
        }
    }
}

我也尝试过只是清单初始化

<receiver
            android:name=".Model.Tools.AutostartReceiver">
            <intent-filter>
                <action android:name="android.bluetooth.BluetoothDevice.ACTION_ACL_CONNECTED" />
                <action android:name="android.bluetooth.BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED" />
                <action android:name="android.bluetooth.BluetoothDevice.ACTION_ACL_DISCONNECTED" />
            </intent-filter>
        </receiver>

EDIT2:

为什么呢?因为我希望我的应用程序只能在汽车中运行...所以当应用程序连接到汽车的免提时,应用程序将启动...并且在断开连接5分钟后,应用程序将是&#34;终止&#34;

1 个答案:

答案 0 :(得分:1)

您希望在Service而不是您的活动中注册广播接收器,并在START_STICKY中返回onStartCommand以使其在活动后保持运行被杀了。例如:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    return START_STICKY;
}