অ্যান্ড্রয়েড অ্যাপ্লিকেশন থেকে ইন্টারনেট অ্যাক্সেস করার জন্য আমার কী অনুমতি প্রয়োজন?


596

আমি আমার অ্যাপ্লিকেশন চালিয়ে নিম্নলিখিত ব্যতিক্রম পেয়েছি:

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

অনুপস্থিত অনুমতি সমস্যাটি কীভাবে সমাধান করব?

উত্তর:


1245

যোগ ইন্টারনেট আপনার ম্যানিফেস্ট ফাইল করার অনুমতি।

আপনাকে এই লাইনটি যুক্ত করতে হবে:

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

আপনার অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলে অ্যাপ্লিকেশন ট্যাগের বাইরে


43
এই ট্যাগটি অ্যাপ্লিকেশন ট্যাগের আগে স্থাপন করা উচিত। আপনি যদি অ্যাপলিকেশন TAG এর পরে রাখেন তবে এটি একটি সতর্কতা তৈরি করে।
মেরেক

2
এমুলেটরটি পুনরায় চালু করুন (এটি কার্যকর হওয়ার আগে আমার জন্য প্রয়োজনীয় ছিল)।
jcalfi314

আমার সমস্যা আছে. আমি আমার apk এর জন্য ইন্টারনেট অ্যাক্সেস চাই না। প্রকাশের জন্য কোনও অনুমতি যোগ করা হয়নি, তবে আমি যদি এপিকে ইনস্টল করার চেষ্টা করি তবে ইনস্টলেশন আমাকে জানায়, সেই অ্যাপিকে সম্পূর্ণ ইন্টারনেট প্রবেশাধিকার প্রয়োজন। এই সমস্যার সমাধান কিভাবে ? প্রকাশের জন্য কোনও অনুমতি যোগ করা হয়নি। আমার এপিকে সম্পূর্ণ ইন্টারনেট অ্যাক্সেসের প্রয়োজন নেই - আমি এই অনুমতিটি অক্ষম করতে চাই।
আলটিভো

1
@ অ্যাল্টিভো আপনার বিভক্ত ম্যানিফেস্টটিতে .. আপনার অ্যাপ্লিকেশন ব্যবহার করে এমন সমস্ত অনুমতি আপনি এখানে পাবেন। এটি আপনার অ্যাপ্লিকেশনটির ম্যানিফেস্টের পাশাপাশি ব্যবহৃত লাইব্রেরির ম্যানিফেষ্টগুলি মার্জ করে তৈরি করা হয়েছে। আপনি অবশ্যই বেশিরভাগ গুগল প্লে পরিষেবাদি গ্রন্থাগার ব্যবহার করেছেন, যাতে ইন্টারনেট এবং এসিসিএস_এনইটওয়র্ককেট অনুমতি রয়েছে।
সিড

116

গুগল প্লেটির সর্বশেষ প্রকাশে, গুগল "আজকাল বেশিরভাগ অ্যাপ্লিকেশনগুলির এটির প্রয়োজন হয়" বলে ইন্টারনেটের জন্য অনুমতি চাওয়ার প্রয়োজনীয়তা সরিয়ে দেয়। তবে, যে ব্যবহারকারীদের পুরানো সংস্করণ রয়েছে তাদের জন্য এখনও আপনার ম্যানিফেস্টে নীচের কোডটি রেখে যাওয়ার পরামর্শ দেওয়া হচ্ছে

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

1
গুগল নথির কোনও রেফারেন্স যেখানে এটি বলে?
farindk

@ ফারিন্ডক এখানে প্রথম নোট বিভাগটি করুন: support.google.com/googleplay/answer/6014972?hl=en
ফিনলে স্মিথ

24
আপনি প্লে স্টোরটি যে ডকুমেন্টটির সাথে লিঙ্ক করেন তাতে কীভাবে অ্যাপ্লিকেশন ইনস্টল করবেন কিনা তা জিজ্ঞাসা করার সময় এটি ব্যবহারকারীর কাছে প্রদর্শিত প্রাথমিক অনুমতিগুলির মধ্যে ইন্টারনেট অনুমতি অন্তর্ভুক্ত করবে না। এটি বলে না যে কোনও অ্যাপ্লিকেশন যা ইন্টারনেট ব্যবহার করে তা আর ঘোষণা করার প্রয়োজন হয় না যে এটি প্রকাশিত ব্যবহারের অনুমতিগুলির তালিকাতে এটি করে। আপনি বলতে মানে না সব অ্যাপ্লিকেশান পরোক্ষভাবে তাদের টেপা যাতে বলার অপেক্ষা রাখে না ইন্টারনেটের ব্যবহার করবেন? এটি হ'ল, যদি আজকের ফোনে প্রশ্ন থেকে জানুস একই অ্যাপটি চালাতেন , প্রশ্ন জিজ্ঞাসা করা হলে এটি যেভাবে ব্যর্থ হত না ?
রব কেনেডি

2
আপনি যদি অনুমতি দস্তাবেজগুলি উল্লেখ করেন তবে দেখতে পাবেন যে এটি অবনমিত নয়। অবহেলিত অনুমতিগুলি হ'ল অনুমতিগুলি যা ব্যবহার করা হয় না, আপনার ম্যানিফেস্টে থাকা দরকার নেই কারণ সেগুলি আর ব্যবহৃত হয় না। অব্যবহৃত অনুমতিগুলি এপিআই প্রতিস্থাপন করা হয়েছে, বা এটির আর প্রয়োজন নেই বলেই হতে পারে। হ্যাঁ, ইন্টারনেট অ্যাক্সেস করার জন্য আপনার ইন্টারনেটের অনুমতি প্রয়োজন। এমনকি ইন্টারনেটের সাথে সংযোগ স্থাপনের প্রাথমিক নথিতেও বলা আছে যে ইন্টারনেটের অনুমতি প্রয়োজন।
জো


76

ঠিক নীচের মত লাইন উপরে রাখুন

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


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

এনটিএলএম / উইন্ডোজ প্রমাণীকরণের প্রয়োজন হতে পারে এমন অন্য কোনও অনুমতি সম্পর্কে আপনি কি জানেন? বিশেষত একটি জেনমোবাইল পরিবেশে ... এখানে একটি ডার্ট ছুঁড়ছে ..
কেন

12

আপনি যদি নিজের অ্যাপ্লিকেশনে ইন্টারনেট ব্যবহার করতে চান এবং পাশাপাশি নেটওয়ার্কের অবস্থাটি পরীক্ষা করতে চান অর্থাৎ অ্যাপটি কি ইন্টারনেটের সাথে সংযুক্ত আছে তবে আপনাকে 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>

7

যদি শুধু ইন্টারনেট ব্যবহার করে থাকেন তবে

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

আপনি যদি ইন্টারনেটের অবস্থা পান তবে এটিও ব্যবহার করুন -

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

অ্যাপ্লিকেশন ট্যাগের ঠিক উপরে।


6

ম্যানিফেস্টে অনুমতি যোগ করার কথা ভুলে যান একটি পদ্ধতি হিসাবে এই কোডটি যুক্ত করুন

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

এবং আপনার মেইন এ এটি লিখুন

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

4

এগুলো ব্যবহার করো:

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

3

স্রেফ অ্যান্ড্রয়েড ম্যানিফেস্টে কোডের নীচে রাখুন:

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

3

বর্তমান সংস্করণ অনুসারে, অ্যান্ড্রয়েড ইন্টারনেটের সাথে ইন্টারঅ্যাক্ট করার অনুমতি চায় না তবে আপনি নীচের কোডটি যুক্ত করতে পারেন যা ব্যবহারকারীদের পুরানো সংস্করণগুলি ব্যবহার করতে সহায়তা করবে কেবল এগুলি অ্যান্ড্রয়েড ম্যানিফেস্টে যুক্ত করুন

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

2

আপনার কোডে ইন্টারনেটের অনুমতি পাওয়ার জন্য আপনাকে এগুলি আপনার AndroidManLive.xML ফাইলে যুক্ত করতে হবে

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

আরও বিশদ বিবরণের জন্য https://developer.android.com/training/basics/network-ops/ সংযোগ স্থাপন


1

গুগল সর্বশেষতম সংস্করণে ইন্টারনেটের জন্য অনুমতি চাওয়ার প্রয়োজনীয়তা সরিয়ে দিয়েছে। তবুও, আপনার কোডটিতে ইন্টারনেটের অনুমতি পাওয়ার জন্য আপনাকে এগুলি আপনার AndroidManLive.xML ফাইলে যুক্ত করতে হবে।

<uses-permission android:name="android.permission.INTERNET"/>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.