programing

응용 프로그램에 매니페스트 권한을 추가하는 방법은 무엇입니까?

javajsp 2023. 6. 3. 08:16

응용 프로그램에 매니페스트 권한을 추가하는 방법은 무엇입니까?

다음을 사용하여 HTTP 링크에 액세스하려고 합니다.HttpURLConnection Android에서 이 됩니다.LogCat:

경고/System.err(223): java.net .소켓 예외:권한이 거부되었습니다(인터넷 권한이 누락되었을 수 있음).

저는 습니다했가를 했습니다.android.Manifest.permission제가 신청했는데도 여전히 같은 예외를 주고 있습니다.

의 에설정사권에서 합니다.LogCat 설명,가 작성한 "오류", "오류"에 .AndroidManifest.xml인터넷에 액세스할 수 있는 파일:

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

그 외에는 인터넷에서 파일을 다운로드해도 괜찮습니다.

권한 이름은 대/소문자를 구분합니다.

누군가가 같은 문제로 어려움을 겪을 경우, 대소문자를 구분하는 진술이므로, 잘못된 대소문자는 프로그램이 권한을 얻지 못한다는 것을 의미합니다.

틀렸어

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

맞아요.

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

이 문제가 발생할 수 있습니다.IDE에서 자동 완성 시

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

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="com.example.towntour.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Black.NoTitleBar" >
    <activity
        android:name="com.photoeffect.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>

</manifest>

Eclipse Eclipse ADT를 엽니다.AndroidManifest.xml에서 (Android Manifest Editor(안드로이드 매니페스트 편집기)를 기본 .)AndroidManifest.xml프로젝트 파일 목록에서).

그런 다음 다음 다음을 선택합니다.Permissions탭(편집기하탭의단탭(()Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml), 를 클릭한 , 를 클릭합니다.Add... a Uses Permission: )을 만 하면 .android.permission.INTERNET필요한 권한)을 입력합니다.

파일에 하여 "" "" "" "" "" "" .<application>꼬리표를 달다

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

을 아배래에치 에 두는 것.<application/>태그는 작동하지만 경고를 제공합니다.그러니 조심해서 그것을 그 앞에 놓으십시오.<application/>태그 선언

FLUTTLE 개발자용.

에 가다

Android/app/main/AndroidManifest.xml

외부

응용 프로그램 태그

하지만 내부적으로는

매니페스트 태그

더하다

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

응용 프로그램 태그에 다음 행을 추가합니다.

 android:usesCleartextTraffic="true"

아래 코드와 같이 표시:

<application
    ....
    android:usesCleartextTraffic="true"
    ....>

그리고 다음 태그를 위에 추가합니다.application

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

그렇게 되는 것:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.themarona.app">
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:usesCleartextTraffic="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

일식을.

  1. 합니다.
  2. 에 있는 합니다.

  3. 대화 상자가 나타나면 권한 사용을 클릭합니다.(일반적으로 목록의 마지막 항목)
  4. 오른쪽에 "안드로이드"를 선택하면 표시됩니다.인터넷"
  5. 그런 다음 OK를 연발하고 마지막으로 저장합니다.

이것이 도움이 되길 바랍니다.

제가 늦었지만 답변을 완료하고 싶습니다.

사용 권한이 다음에 추가됩니다.manifest.xml맘에 들다

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

이는 사용자에게 아무런 권한도 묻지 않는 표준 권한에 충분합니다.그러나 위험한 허가인 경우에만 허가를 추가하는 것은 충분하지 않습니다.안드로이드 문서를 참조하십시오.카메라, 저장소 권한과 같은 것입니다.

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

사용자에게 권한요청해야 합니다.저는 허가를 요청하기 위해 널리 사용되는 RxPermission 라이브러리를 사용합니다.왜냐하면 우리가 허락을 구하기 위해 작성해야 하는 긴 코드이기 때문입니다.

RxPermissions rxPermissions = new RxPermissions(this); // where this is an Activity instance // Must be done during an initialization phase like onCreate
rxPermissions
    .request(Manifest.permission.CAMERA)
    .subscribe(granted -> {
        if (granted) { // Always true pre-M
           // I can control the camera now
        } else {
           // Oups permission denied
        }
    });

이 라이브러리를 앱에 추가

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
    implementation 'com.github.tbruyelle:rxpermissions:0.10.1'
    implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
}

응용프로그램에 인터넷 권한을 추가하는 경우에도 흥미로울 수 있습니다.

구글은 또한 각 앱에 인터넷 액세스 권한을 부여하여 인터넷 액세스 권한을 효과적으로 제거했습니다.아, 물론이죠, 안드로이드 개발자들은 앱을 조립할 때 여전히 인터넷 접속을 원한다고 선언해야 합니다.그러나 앱을 설치할 때 사용자는 더 이상 인터넷 액세스 권한을 볼 수 없으며 인터넷 액세스 권한이 없는 현재 앱은 사용자에게 묻지 않고 자동 업데이트를 통해 인터넷 액세스 권한을 얻을 수 있습니다.

출처: http://www.howtogeek.com/190863/androids-app-permissions-were-just-simplified-now-theyre-much-less-secure/

결론은 매니페스트 파일에 인터넷 권한을 추가해야 하지만 사용자의 장치에 새 권한을 요청하지 않고 응용 프로그램이 업데이트된다는 것입니다.

안드로이드 에뮬레이터를 통해 인터넷을 로드하거나 액세스하는 동안 매니페스트 파일에서 네트워크 및 액세스 네트워크 상태를 모두 사용해야 합니다.

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

.인터넷 권한만 부여하는 경우 인터넷에 액세스할 수 없습니다.

발 디딤판 카운터와 같은 활동 인식용

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

인터넷용

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

통화 전화의 경우

<uses-permission android:name="android.permission.CALL_PHONE" />
[![enter image description here][1]][1]

Android Studio를 사용하는 경우 권한이 필요한 코드 위에 마우스를 놓고 "권한 추가..."를 클릭합니다."

여기에 이미지 설명 입력

그러면 git로 AndroidManifest.xml의 변경 사항을 확인할 수 있습니다.

언급URL : https://stackoverflow.com/questions/2169294/how-to-add-manifest-permission-to-an-application