কীভাবে কোনও অ্যাপ্লিকেশনটিতে প্রকাশের অনুমতি যুক্ত করবেন?


428

আমি HttpURLConnectionএকটি ফাইল ডাউনলোড করতে অ্যান্ড্রয়েড ব্যবহার করে এইচটিটিপি লিঙ্কটি অ্যাক্সেস করার চেষ্টা করছি , তবে আমি এই সতর্কতাটি এখানে পেয়ে যাচ্ছি LogCat:

সতর্কতা / System.err (223): java.net.SketException: অনুমতি অস্বীকার করা হয়েছে (সম্ভবত ইন্টারনেটের অনুমতি অনুপস্থিত)

আমি android.Manifest.permissionআমার আবেদনে যুক্ত করেছি তবে এটি এখনও একই ব্যতিক্রম।


আপনার ম্যানিফেস্ট-অনুমতি সামগ্রীগুলি আটকান, আপনি কি ইন্টারনেটের জন্য অনুমতি দিয়েছেন?
অ্যান্টনি ফোরলনি

আমি অ্যান্ড্রয়েড আমদানি যুক্ত করেছি an অ্যাপ্লিকেশন, অন্য কিছুই। অনুমতিগুলি দেওয়ার জন্য আমাকে আর কী যুক্ত করতে হবে
লুঠ করুন

2
নীচে আমার উত্তরটি দেখুন এবং দেখুন যে এটি সাহায্য করে কিনা এবং আমার কোনও ধারণা নেই import android.Manifest.permissionযদি আপনার অ্যান্ড্রয়েড
ম্যানিফেস্ট.এক্সএমএল

উত্তর:


935

আপনার LogCatত্রুটি বর্ণনা থেকে আপনার কাছে অনুমতি নেই সেটাকে ধরে নিয়ে , এখানে আমার AndroidManifest.xmlফাইলে আমার লিখিত সামগ্রী যা ইন্টারনেটে অ্যাক্সেস পেয়েছে:

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

তা ছাড়া, আপনার ইন্টারনেট থেকে কোনও ফাইল ডাউনলোড করা ভাল।


3
যদি আপনি এমন উত্তরগুলি খুঁজে পান যা আপনার প্রশ্নের সমাধান করে বা সহায়ক বলে মনে হয় তবে এটি "জবাবযুক্ত" এবং / অথবা উত্সাহ হিসাবে নির্বাচন করা দরকারী, একই সম্প্রদায়ের যে কেউ একই সমস্যার মুখোমুখি হয়। এটি কেবল এই প্রশ্নের দিকে নির্দেশিত নয়, আপনি অন্যান্য প্রশ্নও জিজ্ঞাসা করেছেন
অ্যান্টনি ফোরলনি

আমি এটি সম্পর্কে জানতাম না, আমি এটি নিশ্চিতভাবে করব যে এটি যদি আমার সমস্যার সমাধান করে
লুট করুন

আপনি যদি অন্যরকম কিছু মুখোমুখি হন তবে ফিরে রিপোর্ট করুন এবং আমি সহায়তায় খুশি হব।
অ্যান্টনি ফোরলনি

1
আমার ক্ষেত্রে আমাকে নিশ্চিত করতে হয়েছিল যে প্রকাশের বিবৃতি দেওয়ার পরে এটি খুব প্রথম লাইন ছিল .. তার নীচের যে কোনও জায়গায় এবং এটি কার্যকর হবে না। v2.2, এপিআই স্তর 8,
এইচটিসি জি 1

1
@ ডায়ালাক্স এএফাইক, ট্যাগের uses-permissionভিতরে কোনও শিশু উপাদান নেই application, কেবলমাত্র manifest
অ্যান্টনি ফোরলনি

73

অনুমতি নাম CASE- সংবেদনশীল

যদি কেউ একই ইস্যু নিয়ে লড়াই করে, তবে এটি কেস সেনসিটিভ স্টেটমেন্ট, সুতরাং ভুল মামলার অর্থ আপনার আবেদনের অনুমতি পাবেন না।

ভুল

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

সঠিক

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

এই সমস্যাটি ঘটতে পারে, যেমন। আইডিইতে স্বতঃসিদ্ধ


1
ধন্যবাদ! আমার অ্যাপটি কেন কাজ করছে না তা ভেবে আমি সারা দিন নষ্ট করলাম। আমি অ্যান্ড্রয়েড স্টুডিওতে নতুন এবং এই ইস্যুটি গ্রহের আগে দেখা হয়নি :)
অনুপ্রেরণা

1
আর আমি আমার পুরো দিন নষ্ট figuring কি আসলে তাদের OMG এর তার পার্থক্য ক্যাপিটাল এবং ছোট ANDROID.PERMISSION এবং android.permission;): P
fWd82


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

12

গ্রহনটি ব্যবহার করার সময়, এই পদক্ষেপগুলি অনুসরণ করুন

১) মডিফেস্টটি এডিটরটিতে দেখানোর জন্য ডাবল ক্লিক করুন
২) ম্যানিফেস্ট সম্পাদকের নীচে অনুমতি ট্যাবে
ক্লিক করুন ৩) অ্যাড বোতামে ক্লিক করুন
4) প্রদর্শিত ডায়লগটিতে ক্লিকের অনুমতি ব্যবহার হয়। (মূলত তালিকার শেষ আইটেমটি)
5) দৃ side়দিকে উপস্থিত ভিউটি লক্ষ্য করুন "" android.permission.INTERNET "
6) তারপরে একটি সিরিজ ঠিক আছে এবং শেষ পর্যন্ত সংরক্ষণ করুন।

আশাকরি এটা সাহায্য করবে


7

আমি দেরি করেছি তবে আমি উত্তরটি সম্পূর্ণ করতে চাই want

একটি অনুমতি 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

আপনার আবেদনে ইন্টারনেট অনুমতি যুক্ত করার প্রসঙ্গে এটি আকর্ষণীয়ও হতে পারে:

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

সূত্র: http://www.howtogeek.com/190863/androids-app-perifications-were-just-simplified- હવે- theyre- much- less- secure /

নীচের লাইনটি হ'ল আপনাকে এখনও ম্যানিফেস্ট ফাইলে ইন্টারনেট অনুমতি যুক্ত করতে হবে তবে ব্যবহারকারীর ডিভাইসে নতুন অনুমতি চেয়ে জিজ্ঞাসা না করে অ্যাপ্লিকেশন আপডেট করা হবে।


-1

অ্যান্ড্রয়েড এমুলেটরের মাধ্যমে ইন্টারনেটে লোড বা অ্যাক্সেসের চেষ্টা করার সময় আপনাকে ম্যানিফেস্ট ফাইলে নেটওয়ার্ক এবং অ্যাক্সেস নেটওয়ার্ক স্টেট উভয়ই ব্যবহার করতে হবে।

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

আপনি যদি কেবল .INTERNET অনুমতি দিচ্ছেন তবে এটি ইন্টারনেটে অ্যাক্সেস করবে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.