使用广播接收器上的动作启动意图

时间:2014-05-08 08:26:09

标签: android broadcastreceiver

我想要做的是在我的Android手机中的耳机(插件)是我的代码时启动我的应用程序,但没有任何反应:

public class BootBroadcast extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
         context.startService(new Intent(context, TestService.class));
         Intent newIntent = new Intent(".android.intent.action.MAIN"); 
         context.startActivity(newIntent); 
    }

}

这是清单

<activity
            android:name="com.example.talktome.SplashScreen"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".BootBroadcast">   
    <intent-filter>
        <action android:name="android.intent.action.HEADSET_PLUG"/>   
        <category android:name="android.intent.category.DEFAULT" />            
    </intent-filter>
    </receiver> 

请任何建议???

1 个答案:

答案 0 :(得分:0)

您是否已将此代码段添加到当前活动中?

IntentFilter receiverFilter = new IntentFilter(
            Intent.ACTION_HEADSET_PLUG);
    BootBroadcast receiver = new BootBroadcast();
    registerReceiver(receiver, receiverFilter);

在BootBroadcast类

中添加此标志
newIntent .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

在第二个活动的清单中添加此内容

<activity
            android:name="com.example.talktome.TestService"
            android:label="@string/app_name" />