我想捕获Android服务中的网络连接类型更改,并在事件触发时运行此服务的代码。如何在没有单独的类的情况下在Service类中执行此操作?我有这个代码,但它不起作用。
BroadcastReceiver networkStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
playlist="NETWORK TYPE CHANGED";
}
};
public void playSong(Context c, String url) {
try
{
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(networkStateReceiver, filter);
答案 0 :(得分:1)
您的BroadcastReceiver需要从系统接收Intent,因此您需要在AndroidManifest中注册BroadcastReceiver
<receiver
android:name=".ConnectivityReceiver
android:exported="false" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
并且不要忘记许可
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />