Android 连接管理器未看到 ACCESS_NETWORK_STATE 权限

11

我有一段简单的代码,想要读取网络连接的状态。我已将权限添加到 AndroidManifest.xml 中:

<user-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

我尝试访问网络状态的代码:

    ConnectivityManager conmgr = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo ninfo = conmgr.getActiveNetworkInfo();

出现的错误:

 E/AndroidRuntime(7650): java.lang.SecurityException: ConnectivityService: Neither user 10080 nor current process has android.permission.ACCESS_NETWORK_STATE.

我长期以来一直在寻找任何错误,但一切似乎都拼写正确。看起来新版本的AndroidManifest没有部署到设备上。我已经尝试在Eclipse中清除项目,在手机上卸载应用程序,但什么都不起作用,我再次收到相同的通知。我做错了什么?


瞎猜一下,也许标签没有放置正确,试着把它放在应用标签之前。 - Maurice
1
另一个猜测:<useR-permission /> - 这个错别字只在这里还是在代码中也有? - Sergey Glotov
2个回答

23

我认为它是这样的。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
代替
<user-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

当然是这个问题了,我一直在看权限字符串,以为AndroidManifest.xml有任何验证,但显然我错了。 - Danubian Sailor
1
我很困惑: 这解决了你的问题吗?在我的搜索中,安卓里没有 user-permission - VinceStyling
1
@VinceStyling,你需要有一个名为AndroidManifest.xml的文件,在其中添加<uses-permission />。原帖中拼写错误,写成了user而不是uses。 - verunar

0

删除所有与NetworkInfo相关的导入,例如Java.net包或其他任何内容.. 重新导入


这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - MD. RAKIB HASAN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接