简体   繁体   English

权限被拒绝(缺少INTERNET权限?):但是获得了许可

[英]Permission denied (missing INTERNET permission?): But permission is given

I'm trying to call a httpClient and the response is "Permission denied (missing INTERNET permission?)". 我正在尝试调用httpClient,响应是“Permission denied(缺少INTERNET权限?)”。 In the normal browser of Android I can open the URL without problems. 在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();
}

The catch log tell me the error: 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?)

In my Manifest is the permission set: 在我的清单中是权限集:

<?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>

Did you try giving permission above the application tag? 您是否尝试在应用程序标记之上授予权限

You should take care of order in which tags are defined in Manifest.xml. 您应该注意在Manifest.xml中定义哪些标记的顺序

See structure of Manifest. 见Manifest的结构

Edited: 编辑:

<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>

Details: 细节:

Order of defining tabs in Manifest : Manifest中定义选项卡的顺序:

  1. Permissions 权限
  2. Applications 应用
  3. Receiver, Service, Metadata 接收者,服务,元数据

Permissions must be outside of application tag. 权限必须在应用程序标记之外。 So you need to move your permissions outside 所以你需要在外面移动你的权限

<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>

Read about Structure of the Manifest File . 阅读Manifest文件的结构 The syntax is 语法是

<manifest>

    <uses-permission />

    <application>
        ....
    </application>

</manifest>

Permissions不应该在Application Tag ..您必须将其作为Manifest的子项放置..

Put your user-permission tag above the application tag. 将用户权限标记放在应用程序标记上方。 Link: http://developer.android.com/guide/topics/manifest/uses-feature-element.html 链接: http//developer.android.com/guide/topics/manifest/uses-feature-element.html

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="..." >
    <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" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >


    <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>

Right

<uses-permission/>
    <application/>

wrong 错误

<application>

<uses-permission/>
<application/>

Try this You give permission correct but Permissions must be outside of the application tag maintain order for the tag 尝试此操作您授予权限正确但权限必须在应用程序标记之外维护标记的顺序

  <manifest>
      <uses-permission />
      <application>
       ....
      </application>
      <receiver> </receiver>
      <service> </service>
</manifest>

your code is like this way

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="..." >

    <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"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <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>

权限必须是清单标题的直接子项。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 权限被拒绝(缺少 INTERNET 权限) - Permission denied (missing INTERNET permission) 权限被拒绝 - 缺少INTERNET权限? - Permission denied - missing INTERNET permission? SecurityException:权限被拒绝(缺少 INTERNET 权限?) - SecurityException: Permission denied (missing INTERNET permission?) 权限被拒绝(缺少Internet权限?)-Android错误 - Permission denied (missing INTERNET permission?) - android error AsyncTask权限被拒绝(缺少INTERNET权限?) - AsyncTask Permission denied (missing INTERNET permission?) 权限被拒绝(缺少INTERNET权限?)未出现在logcat中 - Permission denied (missing INTERNET permission?) Not Appearing in logcat java.lang.SecurityException:权限被拒绝(缺少 INTERNET 权限?) - java.lang.SecurityException: Permission denied (missing INTERNET permission?) SecurityException:在棒棒糖上安装时,权限被拒绝(缺少INTERNET权限?) - SecurityException: Permission denied (missing INTERNET permission?) while installing on lollipop 使用 exoplayer 时权限被拒绝(缺少 INTERNET 权限?) - Permission denied (missing INTERNET permission?) when using exoplayer Android服务异常-权限被拒绝缺少INTERNET权限 - Android Service Exception - Permission denied missing INTERNET permission
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM