Android ICS上的ACCESS_NETWORK_STATE权限

Ngu*_*inh 22 permissions android

ACCESS_NETWORK_STATE在应用程序清单中声明了如下权限.

<uses-permission  android:name="android.permission.ACCESS_NETWORK_STATE"/>
Run Code Online (Sandbox Code Playgroud)

Android 2.x上的一切都很好.但是在Android ICS上,它失败了以下log cat.

 java.lang.SecurityException: ConnectivityService: Neither user 10093
 nor current process has android.permission.ACCESS_NETWORK_STATE. at
 android.os.Parcel.readException(Parcel.java:1327) at
 android.os.Parcel.readException(Parcel.java:1281) at
 android.net.IConnectivityManager$Stub$Proxy.getActiveNetworkInfo(IConnectivityManager.java:663)
 at
 android.net.ConnectivityManager.getActiveNetworkInfo(ConnectivityManager.java:455)
 at com.tapfortap.AdView.getNetwork(AdView.java:146) at
 com.tapfortap.AdView.loadAdsWithAppId(AdView.java:133) at
 com.tapfortap.AdView.access$100(AdView.java:47) at
 com.tapfortap.AdView$1$1.run(AdView.java:88) at
 android.os.Handler.handleCallback(Handler.java:605) at
 android.os.Handler.dispatchMessage(Handler.java:92) at
 android.os.Looper.loop(Looper.java:137) at
 android.app.ActivityThread.main(ActivityThread.java:4503) at
 java.lang.reflect.Method.invokeNative(Native Method) at
 java.lang.reflect.Method.invoke(Method.java:511) at
 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) at
 dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

Ngu*_*inh 30

这应该是Android ICS框架的一个bug.我刚刚通过再次添加此权限来解决此问题:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)

难以置信的!.

  • 这不是一个有效的答案.您对清单的更新可能只是触发了一个干净的构建或类似的东西. (35认同)

小智 10

我相信这是Eclipse的一个问题; 它无法刷新清单以加载权限.

我遇到了与原始海报相同的问题,并通过第二次添加权限解决了这个问题 - 但后来我能够在不影响行为的情况下删除权限.这让我怀疑Eclipse在我触摸文件之前没有正确加载权限.


Wal*_*lil 10

只需添加以下权限,它就可以正常工作,我之前遇到过这个问题并与我一起解决

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)