我的广播接收器无法启动

时间:2012-03-16 04:11:05

标签: android

我对BroadcastReceiver有些问题。当我接到拨出电话时没有任何反应。

public class demoBroadcastReceiver extends BroadcastReceiver {
    /** Called when the activity is first created. */

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        Toast.makeText(context, "there is new calling", Toast.LENGTH_LONG).show();
    }
}

这是我的清单的内容:          

    <uses-sdk android:minSdkVersion="7" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
            <receiver  android:name=".demoBroadcastReceiver">
                <intent-filter  >
                    <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
                </intent-filter> 
                <intent-filter >
                    <action android:name="android.intent.action.PHONE_STATE" />
                </intent-filter> 
            </receiver>
    </application>

</manifest>

更新 感谢 Lucifer 寻求解决方案:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED">

我也需要这个:

<uses-permission android:name="android.permission.NEW_OUTGOING_CALL" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />**strong text**

3 个答案:

答案 0 :(得分:4)

您应该在AndroidManifest.xml文件中声明此权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>

答案 1 :(得分:3)

也许您应该在这里发布您的日志,以便我们对其进行分析。

尝试添加此权限:

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> 

希望这个

答案 2 :(得分:1)

把它放在你的清单

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

,这在您的应用程序节点中..

<receiver android:name="com.example.demoBroadcastReceiver">  
<intent-filter>  
    <action android:name="android.intent.action.BOOT_COMPLETED" />  <--- add this intent filter
</intent-filter>  
</receiver>

这是在设备启动android

时启动服务