Frage

Ich erhalte die folgende Ausnahme meine Anwendung ausgeführt wird:

java.net.SocketException: Permission denied (maybe missing INTERNET permission)

Wie löse ich das fehlende Erlaubnis Problem?

War es hilfreich?

Lösung

Update:
Google entfernt die Notwendigkeit, die Erlaubnis für die neueste Version von Google Play für das Internet zu stellen.

  

Fügen Sie das [INTERNET] [1] Erlaubnis Ihre Manifest-Datei.

     

Sie haben diese Zeile hinzufügen:

<uses-permission android:name="android.permission.INTERNET" /> 
     

außerhalb der Anwendung Tag in Ihrem AndroidManifest.xml

     

[1]:    https://developer.android.com/training/basics/network-ops /connecting.html

Andere Tipps

In der neuesten Version von Google Play entfernt Google die Notwendigkeit, die Erlaubnis für das Internet zu stellen, wie „die meisten Anwendungen sie brauchen sowieso heute“. Doch für Anwender, die älteren Versionen haben, ist es immer noch um den Code zu verlassen unten in Ihrem Manifest

empfohlen
<uses-permission android:name="android.permission.INTERNET" /> 

nur über Zeile setzen wie unten

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

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="16" />

 <uses-permission android:name="android.permission.INTERNET" />

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


    <activity
        android:name="com.example.exp.MainActivity"
        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>

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

Wenn Sie mit dem Internet in Ihrer App möchten sowie den Netzwerkstatus überprüfen d Ist App mit dem Internet verbunden ist, dann müssen Sie unter Code außerhalb des application Tag verwenden.

Für Internet Berechtigung:

<uses-permission android:name="android.permission.INTERNET" />

Für Access Netzwerkstatus:

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

Komplett-Code:          

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="16" />

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

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


    <activity
        android:name=".MainActivity"
        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>

, wenn nur Internet mit dann verwenden -

<uses-permission android:name="android.permission.INTERNET" />

Wenn Sie den Status des Internet werden immer dann verwenden auch -

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

knapp über dem Anwendungs-Tag.

vergessen die Erlaubnis in den manifesten Hinzufügen Fügen Sie diesen Code als Methode

public static boolean hasPermissions(Context context, String... permissions)
{
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null)
    {
        for (String permission : permissions)
        {
            if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED)
            {
                return false;
            }
        }
    }
    return true;
}

und schreiben diese in Ihrer Haupt

int PERMISSION_ALL = 1;
    String[] PERMISSIONS = {Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_SMS, Manifest.permission.CAMERA};

    if (!hasPermissions(this, PERMISSIONS)) {
        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
    }

Setzen Sie einfach unten Code in AndroidManifest:

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

Wie pro aktuellen Versionen, Android bittet nicht um Erlaubnis zu interact mit dem Internet, aber Sie können die folgenden Code hinzufügen, die für Benutzer mit älteren Versionen helfen fügen Sie diese einfach in AndroidManifest

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

Verwenden Sie diese:

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Zur Anfrage für den Internet-Erlaubnis in Ihrem Code Sie diese an Ihre AndroidManifest.xml Datei hinzufügen müssen

<uses-permission android:name="android.permission.INTERNET" />

Für weitere detaillierte Erläuterung goto https://developer.android.com/ Ausbildung / basics / network-ops / Verbinden

Google entfernt die Notwendigkeit, die Erlaubnis für die neueste Version für das Internet zu stellen. Dennoch Sie auf Anfrage für die Internet-Erlaubnis im Code dieser AndroidManifest.xml Datei hinzufügen.

<uses-permission android:name="android.permission.INTERNET"/>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top