किसी एप्लिकेशन के लिए मैनिफ़ेस्ट अनुमति कैसे जोड़ें?


428

मैं HttpURLConnectionफ़ाइल डाउनलोड करने के लिए Android में HTTP लिंक का उपयोग करने की कोशिश कर रहा हूं , लेकिन मुझे यह चेतावनी मिल रही है LogCat:

WARN / System.err (223): java.net.SocketException: अनुमति से इनकार (हो सकता है कि इंटरनेट की अनुमति न मिल रही हो)

मैंने android.Manifest.permissionअपने एप्लिकेशन में जोड़ा है लेकिन यह अभी भी वही अपवाद दे रहा है।


अपनी प्रकट-अनुमति सामग्री चिपकाएँ, क्या आपने INTERNET के लिए अनुमति प्रदान की है?
एन्थोनी फोर्लोनी

मैंने आयात किया android.anifest.permission; app करने के लिए, और कुछ नहीं। और क्या मैं अनुमति प्रदान करने के लिए जोड़ने के लिए की जरूरत है
लूटने

2
नीचे दिए गए मेरे उत्तर को देखें और देखें कि क्या मदद करता है, और मुझे नहीं पता कि import android.Manifest.permissionआपके लिए क्या होगा अगर आपके पास AndroidManifest.xml फ़ाइल में इंटरनेट की अनुमति नहीं है
एन्थोनी फोर्लोनी

जवाबों:


935

यह मानते हुए कि आपके पास आपके LogCatत्रुटि विवरण से सेट की गई अनुमतियां नहीं हैं , यहां मेरी AndroidManifest.xmlफ़ाइल के लिए मेरी सामग्री है जिसकी इंटरनेट तक पहुंच है:

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

इसके अलावा, आपको इंटरनेट से फ़ाइल डाउनलोड करने के लिए ठीक होना चाहिए।


3
यदि आपको ऐसे उत्तर मिलते हैं जो आपके प्रश्न को हल करते हैं या सहायक लगते हैं, तो "उत्तर" और / या अपवोट के रूप में चयन करने के लिए उपयोगी है, यह समुदाय को समान समस्याओं का सामना करने वाले किसी भी व्यक्ति के लिए मदद करता है।
थॉट्स

मैं इसके बारे में पता था कि नहीं था, मुझे लगता है कि क्या करेंगे यकीन है कि के लिए करता है, तो यह मेरी समस्या का समाधान होगा
लूटने

वापस रिपोर्ट करें यदि आप कुछ भी अलग करते हैं और मैं सहायता करने के लिए खुश हूं।
एन्थोनी फोर्लोनी

1
मेरे मामले में मुझे यह सुनिश्चित करना था कि मैनिफ़ेस्ट स्टेटमेंट के बाद यह बहुत ही एफआईआरटी लाइन थी .. उसके नीचे और कहीं भी यह काम नहीं करेगा। v2.2, एपीआई स्तर 8, htc g1
slf

1
@dialex AFAIK, टैग के uses-permissionअंदर कोई बाल तत्व नहीं है application, केवल manifest
एंथोनी फोर्लोनी

73

अनुमति नाम CASE-SENSITIVE है

यदि कोई व्यक्ति एक ही मुद्दे के साथ संघर्ष करेगा, तो यह संवेदनशील बयान है, इसलिए गलत मामले का मतलब है कि आपके आवेदन को अनुमति नहीं मिलेगी।

गलत

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

सही बात

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

यह समस्या हो सकती है। आईडीई में स्वतः पूर्ण पर


1
धन्यवाद! मैंने अपना पूरा दिन यह सोचकर बर्बाद कर दिया कि मेरा ऐप क्यों काम नहीं कर रहा था। मैं एंड्रॉइड स्टूडियो के लिए नया हूं और यह मुद्दा ग्रहण से पहले नहीं हुआ :)
InspiredCoder

1
और मैंने अपना पूरा दिन बर्बाद कर दिया और ANDROID.PERMISSIONandroid.permission
सोचा


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

34

यदि आप अपने विकास के लिए ग्रहण एडीटी प्लगइन का उपयोग कर रहे हैं, AndroidManifest.xmlतो एंड्रॉइड मेनिफेस्ट एडिटर में खोलें ( AndroidManifest.xmlप्रोजेक्ट फ़ाइलों की सूची से खोलने के लिए डिफ़ॉल्ट कार्रवाई होनी चाहिए )।

बाद में, Permissionsसंपादक के नीचे ( Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml) के साथ टैब का चयन करें , फिर Add...एक पर क्लिक करें Uses Permissionऔर दाईं ओर ड्रॉपडाउन से वांछित अनुमति का चयन करें, या आवश्यक एक में कॉपी-पेस्ट करें (जैसे कि android.permission.INTERNETआपको आवश्यक अनुमति)।


23

अपनी एप्लिकेशन मैनिफ़ेस्ट फ़ाइल में निम्न पंक्ति को कॉपी करें और <application> टैग से पहले पेस्ट करें ।

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

<application/>टैग के नीचे अनुमति देना काम करेगा, लेकिन आपको चेतावनी देगा। इसलिए <application/>टैग घोषणा से पहले इसे रखने का ध्यान रखें ।


इस टिप्पणी को लिखने के रूप में, यह अनुप्रयोग तत्व के बाहर जाता है लेकिन प्रकट के भीतर। उदाहरण: <एप्लिकेशन> ... </ एप्लिकेशन> <उपयोग-अनुमति एंड्रॉइड: नाम = "android.permission.INTERNET" /> </
मैनिफ़ॉर्म

12

ग्रहण का उपयोग करते समय, इन चरणों का पालन करें

1) एडिटर पर इसे दिखाने के लिए मैनिफ़ेस्ट पर डबल क्लिक करें
2) मैनिफ़ेस्ट एडिटर के नीचे परमिशन टैब
पर क्लिक करें 3) Add बटन
4 पर क्लिक करें ) डायलॉग पर क्लिक करने पर अनुमति का उपयोग होता है। (सूची में अंतिम रूप से अंतिम आइटम)
5) उस दृश्य पर ध्यान दें जो कठोर पक्ष में दिखाई देता है "android.permission.INTERNET"
6 का चयन करें ) फिर Ok की एक श्रृंखला और अंत में सहेजें।

उम्मीद है की यह मदद करेगा


7

मुझे देर हो गई है लेकिन मैं जवाब पूरा करना चाहता हूं।

जैसे एक अनुमति जोड़ी जाती 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'
}

4

अपने आवेदन में इंटरनेट की अनुमति को जोड़ने के संदर्भ में यह भी दिलचस्प हो सकता है:

Google ने इंटरनेट एक्सेस की अनुमति को प्रभावी ढंग से हटाते हुए प्रत्येक ऐप को इंटरनेट एक्सेस भी दिया है। ओह, निश्चित रूप से, एंड्रॉइड डेवलपर्स को अभी भी घोषित करना है कि वे ऐप को एक साथ डालते समय इंटरनेट एक्सेस चाहते हैं। लेकिन ऐप और वर्तमान ऐप इंस्टॉल करते समय उपयोगकर्ता अब इंटरनेट एक्सेस की अनुमति नहीं देख सकते हैं, जिनके पास इंटरनेट एक्सेस नहीं है, अब आपको संकेत दिए बिना स्वचालित अपडेट के साथ इंटरनेट एक्सेस प्राप्त कर सकते हैं।

स्रोत: http://www.howtogeek.com/190863/androids-app-permissions-were-just-simplified-now-theyre-much-less-secure/

लब्बोलुआब यह है कि आपको अभी भी मैनिफ़ेस्ट फ़ाइल में INTERNET अनुमति को जोड़ना है, लेकिन एप्लिकेशन को नई अनुमति के बिना उपयोगकर्ता के उपकरणों पर अपडेट किया जाएगा।


-1

आपको एंड्रॉइड एमुलेटर के माध्यम से लोड या इंटरनेट तक पहुंच की कोशिश करते समय नेटवर्क और एक्सेस नेटवर्क स्टेट दोनों को मैनिफ़ेस्ट फ़ाइल में उपयोग करना होगा।

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

यदि आप केवल .INTERNET अनुमति दे रहे हैं, तो यह इंटरनेट तक नहीं पहुंचेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.