Android 애플리케이션에서 인터넷에 액세스하려면 어떤 권한이 필요합니까? 앱을 실행하면 다음과 같은 예외가 발생합니다. java.net.SocketException:

내 앱을 실행하면 다음과 같은 예외가 발생합니다.

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

누락 된 권한 문제를 어떻게 해결합니까?



답변

매니페스트 파일에 인터넷 권한을 추가 하십시오.

이 줄을 추가해야합니다 :

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

AndroidManifest.xml의 애플리케이션 태그 외부


답변

최신 버전의 Google Play에서 Google은 “현재 대부분의 앱에서 필요로하기 때문에”인터넷에 대한 권한을 요구할 필요가 없습니다. 그러나 이전 버전을 사용하는 사용자의 경우 매니페스트에 아래 코드를 남겨 두는 것이 좋습니다.

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

답변

아래처럼 위의 라인을 넣으십시오.

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

답변

앱에서 인터넷을 사용하고 네트워크 상태를 확인하려면 즉, 앱이 인터넷에 연결되어 있는지 확인하려면 application태그 외부에서 아래 코드를 사용해야합니다 .

인터넷 권한의 경우 :

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

액세스 네트워크 상태의 경우 :

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

완전한 코드 :

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

답변

인터넷 만 사용한다면

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

인터넷 상태를 얻는다면 다음도 사용하십시오.

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

애플리케이션 태그 바로 위에 있습니다.


답변

매니페스트에 권한을 추가하는 것을 잊어라.

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

이것을 Main에 쓰세요

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);
    }