android动态注册监听网络变化异常

在使用广播接收器监听网络变化的时候,在AndroidManifest.xml中加入<user-permission android:name="android.permission.ACCESS_NETWOEK_STATE"/>还是无法启动应用程序,显示如下异常

07-06 00:03:22.568  22393-22393/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.lvkui.helloworld3, PID: 22393
    java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } in [email protected]a
            at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:871)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.SecurityException: ConnectivityService: Neither user 10060 nor current process has android.permission.ACCESS_NETWORK_STATE.
            at android.os.Parcel.readException(Parcel.java:1540)
            at android.os.Parcel.readException(Parcel.java:1493)
            at android.net.IConnectivityManager$Stub$Proxy.getActiveNetworkInfo(IConnectivityManager.java:960)
            at android.net.ConnectivityManager.getActiveNetworkInfo(ConnectivityManager.java:603)
            at com.lvkui.helloworld3.MainActivity$NetworkChangeReceiver.onReceive(MainActivity.java:62)
            at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:861)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

解决方法是:

在application标签中再加入

android:sharedUserId="android.uid.system"

就可以

时间: 2024-08-26 14:26:44

android动态注册监听网络变化异常的相关文章

通过Broadcast动态注册监听网络变化和网络类型

package com.beini.networkchanges; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.ConnectivityManager; impor

通过静态广播监听网络变化,在通过回调通知

package com.changim.patient.app.sys.receive; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; import com.changim.patient.app.sys.Constants; import com.changim.patient.ap

Android使用ContentObserver监听数据库变化(转自:http://www.blogjava.net/zhaojianhua/archive/2011/10/27/362204.html)

android 使用contentobserver监听数据库内容变化 android 使用contentobserver监听数据库内容变化 在 android中经常会用到改变数据库内容后再去使用数据库更新的内容,很多人会重新去query一遍,但是这样的问题就是程序会特别占内存,而且有可能 会搂关cursor而导致程序内存未释放等等.其实android内部提供了一种ContentObserver的东西来监听数据库内容的变化.ContentObserver 的构造函数需要一个参数Hanlder,因为

动态注册广播接收器,监听网络变化

1:NetChangeReceiver.java public class NetChangeReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)

Android使用BroadcastReceiver监听网络状态

在开发中,经常会遇到需要判断手机网络状态从而进行各种操作的功能,在这里简单介绍下这种功能的实现. 如题,通过BroadcastReceiver我们能在网络状态改变的时候监听到它. 那么,注册广播的两种方式: 1.静态注册:在AndroidManifest.xml中用标签声明注册,并在标签内用标签设置过滤器. 1 2 3 4 5 6 7 <!--继承BroadcastReceiver,重写onReceiver方法--> <receiver android:name="MyRece

android 通过广播监听网络连接状况

首先添加以下权限 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE&quo

动态注册监听

SQL> select * from v$version where rownum=1; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production SQL> !cat /etc/issue Enterprise Linux Enterpr

Android 监听网络变化

android 使用brocastReceiver监听网络连接状态

public class BroadcastService extends Service{ private ConnectivityManager connectivityManager;//网络连接管理器 private NetworkInfo networkInfo;//当前网络的信息 //点击查看 private PendingIntent messagePendingIntent = null; //通知栏消息 private Notification messageNotificat