我对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**
答案 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
时启动服务