我正在尝试调用httpClIEnt,响应是“Permission denIEd(缺少INTERNET权限?)”.在Android的普通浏览器中,我可以毫无问题地打开URL.
public static String gethttpResponse(URI uri) { StringBuilder response = new StringBuilder(); try { httpGet get = new httpGet(); get.setURI(uri); DefaulthttpClIEnt httpClIEnt = new DefaulthttpClIEnt(); httpResponse httpResponse = httpClIEnt.execute(get); if (httpResponse.getStatusline().getStatusCode() == 200) { Log.d("demo", "http Get succeeded"); httpentity messageEntity = httpResponse.getEntity(); inputStream is = messageEntity.getContent(); BufferedReader br = new BufferedReader(new inputStreamReader(is)); String line; while ((line = br.readline()) != null) { response.append(line); } } } catch (Exception e) { Log.e("demo", e.getMessage()); } Log.d("demo", "Done with http getting"); return response.toString();}
catch日志告诉我错误:
java.lang.SecurityException: Permission denIEd (missing INTERNET permission?)libcore.io.GaIException: getaddrinfo Failed: EAI_NODATA (No address associated with hostname)Permission denIEd (missing INTERNET permission?)
在我的清单中是权限集:
<?xml version="1.0" enCoding="utf-8"?><manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"package="..." ><application androID:allowBackup="true" androID:icon="@drawable/ic_launcher" androID:label="@string/app_name" androID:theme="@style/Apptheme" > <uses-permission androID:name="androID.permission.INTERNET" /> <uses-permission androID:name="androID.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission androID:name="androID.permission.ACCESS_WIFI_STATE" /> <uses-permission androID:name="androID.permission.CHANGE_WIFI_STATE" /> <uses-permission androID:name="androID.permission.CHANGE_NETWORK_STATE" /> <uses-permission androID:name="androID.permission.ACCESS_NETWORK_STATE" /> <uses-feature androID:name="androID.harDWare.camera" androID:required="true" /> <activity androID:name=".main" androID:label="@string/app_name" > <intent-filter> <action androID:name="androID.intent.action.MAIN" /> <category androID:name="androID.intent.category.LAUNCHER" /> </intent-filter> </activity></application>
解决方法:
您是否尝试在应用程序标记之上授予权限?
您应该注意在Manifest.xml中定义哪些标记的顺序.
见Manifest的structure.
编辑:
<uses-permission androID:name="androID.permission.INTERNET" /><uses-permission androID:name="androID.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission androID:name="androID.permission.ACCESS_WIFI_STATE" /><uses-permission androID:name="androID.permission.CHANGE_WIFI_STATE" /><uses-permission androID:name="androID.permission.CHANGE_NETWORK_STATE" /><uses-permission androID:name="androID.permission.ACCESS_NETWORK_STATE" /><application ...></application>
细节:
在Manifest中定义选项卡的顺序:
>权限
>应用
>接收器,服务,元数据
以上是内存溢出为你收集整理的android – 权限被拒绝(缺少INTERNET权限?):但是给予了许可全部内容,希望文章能够帮你解决android – 权限被拒绝(缺少INTERNET权限?):但是给予了许可所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)