রফতানি পরিষেবাটির অনুমতি লাগে না: এর অর্থ কী?


143

আমি এমন একটি পরিষেবা তৈরি করেছি যা অন্যান্য অ্যাপ্লিকেশনগুলির দ্বারা এইডএল এর মাধ্যমে আবদ্ধ এবং আমি এটিকে ম্যানিফেস্টে নিম্নলিখিত হিসাবে যুক্ত করেছি:

<service android:name=".MyService">
    <intent-filter>
        <action android:name="org.example.android.myservicedemo.IService" />
    </intent-filter>
</service>

যেখানে আইএসভাইস হ'ল এআইডিএল ইন্টারফেস।

এইভাবে, Eclipse আমাকে সতর্কতা দেখান রফতানি পরিষেবাটির অনুমতি প্রয়োজন হয় না । আমি যদি অপসারণ করি intent-filterতবে সতর্কতা অদৃশ্য হয়ে যায় তবে স্পষ্টতই অ্যাপ্লিকেশনগুলি পরিষেবাটিতে আবদ্ধ হতে অক্ষম।

এই সতর্কতার অর্থ কী?


31
এর অর্থ হ'ল ব্যবহারকারী তার ফোনে থাকা অন্যান্য (স্বেচ্ছাসেবী) অ্যাপ্লিকেশনগুলি আপনার বাঁধাই করতে পারে Serviceএবং যে কোনও পদ্ধতিতে তারা খুশি তা আপনার এআইডিএল ইন্টারফেসের মাধ্যমে উন্মুক্ত করতে পারে।
জেনস

25
আপনার অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলে একটি নতুন < স্পেকশন > তৈরি করুন এবং এর নামটি android:permissionআপনার <service>ঘোষণার বৈশিষ্ট্য হিসাবে ব্যবহার করুন । বা কেবল সতর্কতা উপেক্ষা করুন - পরিষেবাটি কী করতে চাইবে? আপনি পরিষেবা "অভ্যন্তরীণ" পালন জরিমানা যদি অনেক সহজ শুধু সেট করার android:exported="false"আপনার<service>
জেনস

3
তারপরে হয় সতর্কতাটিকে উপেক্ষা করুন বা একটি << সংক্ষেপণ> যুক্ত করুন, যদি তারা আপনার নিজস্ব অ্যাপ্লিকেশনগুলি একই শংসাপত্রের সাথে স্বাক্ষরিত হয় বা অন্যথায় "সাধারণ" সাথে যায় তবে "স্বাক্ষর" ব্যবহার করুন।
জেনস

3
আপনি ইতিমধ্যে আপনার অ্যাপ্লিকেশনগুলিতে স্বাক্ষর করতে একটি (প্রকাশ) শংসাপত্রটি ব্যবহার করছেন - স্বাক্ষর সুরক্ষা যাচাই করে যে অনুমতিটির জন্য আবেদনকারী আবেদনটি সেই সংজ্ঞায়িত অ্যাপ্লিকেশন হিসাবে একই স্বাক্ষরিত যা অনুমতিটিকে সংজ্ঞায়িত করে।
জেনস

2
@ জেনস থ্যাঙ্কস ... এটি আমাকে সাহায্য করেছে .... বিটিডব্লিউ আপনি উত্তর হিসাবে আপনার মন্তব্য যুক্ত করতে পারেন। Enzom83 এটি গ্রহণ করুন।
বিজয় সি

উত্তর:


128

আমি এসডিকে 20 সংস্করণে আপডেট করার সময় আমার একই সমস্যা ছিল । আমি এটিকে অ্যান্ড্রয়েড যুক্ত করে সরিয়েছি : রফতানি সম্পত্তি android:exported="false"যেমন:

<service android:name=".MyService"
    android:exported="false">
    <intent-filter>
        <action android:name="org.example.android.myservicedemo.IService" />
    </intent-filter>
</service>

এই ডকটি দেখুন


56

আপনি যদি নিজের প্রয়োগে আপনার ক্রিয়াকলাপের ব্যবহার সীমাবদ্ধ রাখতে চান তবে exported=falseআপনার ক্রিয়াকলাপের প্রকাশিত বিবৃতিতে আপনার যুক্ত হওয়া উচিত add

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

  • অনুমতি ব্যবহার করে সেই অ্যাপ্লিকেশনগুলিকে সীমাবদ্ধ করুন
  • সমস্ত অ্যাপ্লিকেশনগুলিকে এটি ব্যবহার করার অনুমতি দিন, তারপরে আপনি tools:ignore="ExportedActivity"আপনার ক্রিয়াকলাপের প্রকাশিত বিবৃতিতে যুক্ত করতে পারেন ।

-

একই যুক্তি একটি পরিষেবাদির সাথে tools:ignore="ExportedService"এবং সাথে সামগ্রী সরবরাহকারীদের ক্ষেত্রে প্রযোজ্য tools:ignore="ExportedContentProvider"


8
এটি আমার জন্য কাজ করেছে, ধন্যবাদ !! তবে খেয়াল করুন যে এর জন্য ম্যানিফেস্ট ফাইলের শীর্ষে একটি এক্সএমএনএলস ঘোষণা যুক্ত করা দরকার :xmlns:tools="http://schemas.android.com/tools"
লুইস এ ফ্লোরিট

ধন্যবাদ, এটি গ্রহ দ্বারা স্বয়ংক্রিয়ভাবে যুক্ত হয়েছে। অন্যান্য আইডিই ব্যবহারকারীদের জন্য এটি একটি দুর্দান্ত পরিপূরক।
Snicolas

আমি Eclipse 4.2.1 ব্যবহার করি, এবং এটি যুক্ত করে না, একটি ত্রুটি দেয় (কমপক্ষে ডিফল্ট কনফিগারেশনে?) এটি কেবলমাত্র বলে: The prefix "tools" for attribute "tools:ignore" associated with an element type "activity" is not boundএবং এটি ঠিক করার জন্য কোনও পছন্দ দেওয়া হয় না।
লুইস এ ফ্লোরিট

এটি আপনার সরঞ্জামগুলি সরিয়ে ফেললে এটি যুক্ত করবে: foo = বার বিবৃতি, তারপরে কোনও ত্রুটি / সতর্কতা উপস্থিত থাকলে ডান ক্লিক করুন এবং সরঞ্জাম বিবৃতি যুক্ত করতে একটি দ্রুত ফিক্স ব্যবহার করুন।
Snicolas

1
বিশেষ ক্ষেত্রে হ'ল সিঙ্ক সার্ভিস, যা রফতানি করা উচিত তবে আপনি কেবল এটি ব্যবহার করতে চান। সিঙ্কসেবা বা প্রমাণীকরণকারীর জন্য অ্যান্ড্রয়েড যুক্ত করুন: অনুমতি = "স্বাক্ষর"
এন্ট্রেকো

4

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

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