应用程序在启动Launcher时未接收广播但在源自其他应用程序时接收

时间:2012-07-29 21:43:59

标签: android manifest broadcast

我有一个应用程序,在接收广播时显示祝酒,动作等于BluetoothAdapter.ACTION_STATE_CHANGED,一切正常,但问题是我想在蓝牙打开但是从蓝牙激活蓝牙时做某事发射器的按钮似乎是广播迟到或者我的应用程序迟到或类似的东西,因为当我从其他应用程序启动蓝牙时,接收器工作得很好并准时。

有什么问题的建议?我有接收器在清单中注册。

似乎有时会无限循环,因为我有两个toast来显示bluetoothAdapter.ACTION_STATE_CHANGED并且无限显示

知道为什么会发生这个和以前的事情?

接收器:

public class Receivers extends BroadcastReceiver {

protected static AlertObject BTTurningOn = new AlertObject();

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    final String action = intent.getAction();


    this.context=context;


    if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
        final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
                                             BluetoothAdapter.ERROR);




        if(state == BluetoothAdapter.STATE_TURNING_ON && BTTurningOn.Activated == true)
        {
            Alert(BTTurningOn);
        }






    }


}

BTTurningOn只是一个带有一些布尔变量的对象,知道是否要参加广播消息

以下是清单的重要部分:

<receiver android:name=".Receivers">
    <intent-filter>
        <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
</intent-filter>
</receiver>

当我从我的其他应用程序启动蓝牙或从调整/无线连接启动蓝牙时,它工作得很好,但是当我从启动器的图标或显示通知的上方栏启动它时它不起作用我使用GO Launcher EX版本2.76

我的其他应用程序获得广播并且从该应用程序未获得的网站上运行良好,但不同之处仅在于我注册接收器,此应用程序在MAnifest中,其他应用程序在一个活动

1 个答案:

答案 0 :(得分:0)

答案是:我在清单中没有蓝牙权限,但它有点奇怪,因为它从发射器发出时没有收到广播消息,但实际上应用程序在发起我的其他时收到了它们应用