কেন এত অ্যাপ্লিকেশনগুলির ফোনের স্থিতি এবং পরিচয় পড়ার অনুমতি প্রয়োজন ?. বিশেষ করে:
Phone calls
read phone state and identity
উদাহরণস্বরূপ কুইকপিডিয়া একটি উইকিপিডিয়া পোর্টাল, তবে ফোনে অ্যাক্সেস চায়। এর ব্যাখ্যা কী?
কেন এত অ্যাপ্লিকেশনগুলির ফোনের স্থিতি এবং পরিচয় পড়ার অনুমতি প্রয়োজন ?. বিশেষ করে:
Phone calls
read phone state and identity
উদাহরণস্বরূপ কুইকপিডিয়া একটি উইকিপিডিয়া পোর্টাল, তবে ফোনে অ্যাক্সেস চায়। এর ব্যাখ্যা কী?
উত্তর:
এটি অ্যাপ্লিকেশনটিকে আপনার ফোনের সাথে সম্পর্কিত একটি অনন্য আইডি ( আইএমইআইআই নামের একটি ফোন সনাক্তকারী) পড়তে অনুমতি দেয় ।
এটি অনুলিপি-সুরক্ষা বা ব্যবহারকারীর সংখ্যা ট্র্যাক করার প্রয়াসে সহায়তা করতে পারে।
অনন্য আইডি ছাড়াও এর আর একটি কারণ রয়েছে। আমি অনুমান করব যে অর্ধেক অ্যাপ্লিকেশনগুলি সেই মানগুলিতে মোটেই অ্যাক্সেস করে না। সমস্যাটি হ'ল অ্যান্ড্রয়েড 1.5 পর্যন্ত নিম্ন সংস্করণের জন্য এই অনুমতিটি বিদ্যমান নেই। প্রত্যেকেই কিছু অনুরোধ না করে এই মানগুলি অ্যাক্সেস করতে পারে।
সুতরাং আপনি যদি 1.5 এর সাথে সামঞ্জস্যপূর্ণ একটি অ্যাপ্লিকেশন তৈরি করেন তবে অ্যান্ড্রয়েড 1.5 এর নিম্ন সুরক্ষা অনুকরণে এই অনুমতিটি স্বয়ংক্রিয়ভাবে যুক্ত হবে কারণ আপনি এটি বেশিরভাগ ক্ষেত্রেই এই অনুমতিটিকে উপেক্ষা করতে পারেন কারণ এটি কেবলমাত্র একটি সামঞ্জস্যতার সমস্যা হিসাবে প্রবণতা বোধ করে।
কারণটি হ'ল অ্যান্ড্রয়েড 1.5 এবং এর আগেরটির জন্য বিশেষত সেই অনুমতিগুলির জন্য অনুরোধ করার জন্য অ্যাপ্লিকেশনটির প্রয়োজন হয়নি এবং স্বয়ংক্রিয়ভাবে সেগুলি মঞ্জুর করে। অ্যান্ড্রয়েড 1.6 থেকে, সেই অনুমতিগুলি অ্যাপ্লিকেশন দ্বারা বিশেষভাবে অনুরোধ করতে হবে। তবে, আপনি যদি উল্লেখ করেন যে আপনার অ্যাপ্লিকেশনটি অ্যান্ড্রয়েড 1.5 এবং আরও কম ডিভাইসগুলিতে চলতে পারে, তবে সেই অনুমতিটি ডিফল্টরূপে অ্যাপ্লিকেশনটিতে যুক্ত হয় এবং বাজার অ্যাপ্লিকেশনটির দ্বারা অনুরোধ করা হিসাবে অনুমতিটি প্রদর্শন করে।
সুতরাং সংক্ষেপে, অ্যাপ্লিকেশনটি সম্ভবত আপনার "ফোনের অবস্থা এবং পরিচয়" অ্যাক্সেস করছে না তবে বিকাশকারী যদি নির্দিষ্ট করে দেয় যে তার অ্যাপ্লিকেশনটি 1.5 বা তার কম সংখ্যক ডিভাইসে চালাতে পারে তবে সেই অনুমতি প্রদর্শিত হবে।
এই প্রশ্নটি বেশ কিছুদিন আমাকে বিরক্ত করছে। সুতরাং এখন, অবশেষে, আমি ইস্যুটির নীচে পৌঁছানোর সিদ্ধান্ত নিয়েছি।
প্লেস্টোরটিতে অনুমতি নামে একটি অ্যাপ রয়েছে RE READ_PHONE_STATE , যা READ_PHONE_STATE
একমাত্র অনুমতি হিসাবে অনুরোধ করে এবং এটি ব্যবহার করে বা ব্যবহার না করে যে সমস্ত ডেটা অ্যাক্সেস করতে পারে তা মুদ্রণ করা ছাড়া আর কিছুই করে না। আমি এটি আমার LG Optimus 4X এ ইনস্টল করেছি , অ্যান্ড্রয়েড 4.0.০.৩ এ মূলযুক্ত এবং এলবিই ব্যবহার করে অনুমতি বাতিল করেছি। ফলাফলগুলি যেখানে বেশ আকর্ষণীয়, নিম্নলিখিত স্ক্রিনশটগুলি দেখায়:
অ্যাপ্লিকেশন অনুমতি দ্বারা তথ্য সংগ্রহ করা হয়েছে। READ_PHONE_STATE (বৃহত্তর রূপগুলির জন্য চিত্রগুলি ক্লিক করুন)
আপনি সহজেই দেখতে পাচ্ছেন, অনুমতি ব্যতীত অ্যাক্সেসযোগ্য যদিও এমন কিছু তথ্য অবাধে অ্যাক্সেসযোগ্য ছিল: আমার মেলবক্স নম্বর (মন্তব্য: হ্যাঁ, এটি সঠিক একটি; আমার সরবরাহকারীর সাথে আপনার নিজের ডিভাইস থেকে ডায়াল করার সময় শর্টকাট হয়, তাই আমি পারি নির্দ্বিধায় এটি প্রদর্শন করুন;) প্রথম স্ক্রিনশট শেষে আপনি দেখতে পাবেন:
CALL_STATE_IDLE
। সুতরাং কোনও ফোন কল আগমনকারী, বহির্মুখী বা প্রগতিতে নেই। ইনকামিং কলগুলিতে নিজেই "ব্যাকগ্রাউন্ড" করতে কোনও অ্যাপ্লিকেশনকে এই অনুমতি প্রয়োজন হয় না।এমনকি মোবাইল ডেটা সক্রিয় রয়েছে কিনা তাও দেখতে পাওয়া যায় ( DATA_DISCONNECTED
; আপনি নোটিফিকেশন বারে স্ক্রিনশটগুলি নেওয়ার সময় আমি ওয়াইফাইতে ছিলাম), আপনি কোন দেশে রয়েছেন, আপনার সরবরাহকারী (তাঁর সম্পর্কে কিছু প্রযুক্তিগত ডেটা সহ), কিনা আপনার সিম কার্ড রয়েছে, অথবা আপনি যদি রোমিং করছেন।
কেবল অ্যাক্সেসযোগ্য নয় এমন জিনিস হ'ল ডেটা সনাক্ত করে: আইএমইআই, সিমিড, আইএমএসআই এবং আপনার নিজের ফোন নম্বর।
উপসংহার: এই অনুমতিটি কেবল সনাক্তকরণের উদ্দেশ্যে প্রয়োজন, অন্য কিছুই নয়।
এত অ্যাপ্লিকেশানের কেন এটি দরকার?
ঠিক এই ক্রমে সম্ভাবনা, আইএমএইচও।
চ্যানেলে ড্যানের পোস্টের 1 নোট :
গুগল প্লে নীতি অ্যাপ্লিকেশনগুলিকে বিজ্ঞাপনের উদ্দেশ্যে আপনাকে সনাক্ত করতে আপনার আইএমইআই পেতে বাধা দেয়। গুগল-প্লে-পরিষেবাদি সরবরাহিত "বিজ্ঞাপন আইডি" ব্যবহার করার জন্য সমস্ত বিজ্ঞাপন লাইব্রেরি এখনই আপডেট করা হয়েছে, সুতরাং এখনও এই উদ্দেশ্যে আইএমইআই ব্যবহার করা যে কোনওগুলি গুগলে জানানো উচিত।
অ্যাপটি আইএমইআই কী ব্যবহার করছে তা ব্যবহারকারীর পক্ষে বলা শক্ত, তাই আপনার বিকাশকারীকে প্রথমে ব্যাখ্যা করতে বলা উচিত।
২ অন্য একজন বিকাশকারী আমাকে কেবল একটি সূক্ষ্ম পার্থক্যের দিকে লক্ষ্য করেছিলেন: যদিও বর্তমান কল স্থিতিটি পড়ার জন্য অনুমতিের প্রয়োজন নেই (যেমন আমি উল্লেখ করেছি), কলটির পরিবর্তনগুলি সম্পর্কে অবহিত হওয়ার জন্য শ্রোতার রেজিস্ট্রেশন করার প্রয়োজন হতে পারে স্থিতি (দেখুন: অ্যান্ড্রয়েডে আগত এবং বহির্গামী ফোন কলগুলি সনাক্ত করা )। সিস্টেম কল করার সময় এটি স্বয়ংক্রিয়ভাবে হ্যান্ডেল করার উপায় রয়েছে বলে মনে হচ্ছে , এটি সর্বদা উপযুক্ত নাও হতে পারে: আপনার অ্যালার্ম ঘড়ির কথা ভাবুন। আপনি হয়ত এটি আসতে চাইবেন না যে কোনও আগত কলটিতে স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে - বিশেষত যখন আপনার প্রোফাইলটি রিংর ভলিউম "নিঃশব্দ" তে সেট করা থাকে না।onPause
3 ড্যানের কাছ থেকে আবারও একটি সংশোধন : আপনার অ্যাপ্লিকেশনটির "টার্গেট" সংস্করণ 1.5 হয় তবে আপনি কেবলমাত্র ডিফল্ট অতিরিক্ত অনুমতি পাবেন। আপনি যদি পরবর্তী সংস্করণটিকে লক্ষ্য করেন তবে আপনার নূন্যতম সংস্করণটি 1.5 হয়, আপনি স্বয়ংক্রিয়ভাবে যুক্ত অনুমতিটি পাবেন না।
READ_PHONE_STATE
কী প্রয়োজন তার মধ্যে বিভক্ত করার জন্য একটি ওপেন ইস্যু (21504) রয়েছে এবং আগত কলগুলি এবং সম্পর্কিত (টেলিফোনি) সনাক্তকরণ এবং সনাক্তকরণের বিশদটির জন্য দ্বিতীয় অনুমতি (আইএমইআই, আইএমএসআই, ইত্যাদি)। 11/2011 খোলা হয়েছে, এখনও কাজ হয়নি। আগ্রহী হলে এটি শুরু করুন :)READ_PHONE_STATE
অনুমতি, যেমন যেমন আরনো Welzel দ্বারা নির্দিষ্ট । যেহেতু আগত ফোন কলটি রিঞ্জারটিকে ট্রিগার করবে, সেই ইভেন্টটি ব্যবহার করা যেতে পারে onAudioFocusChange()
, যার জন্য কোনও বিশেষ অনুমতিের প্রয়োজন নেই: যদি এটির দ্বারা ট্রিগার করা হয়, অ্যাপটি কলস্টেটটি পরীক্ষা করতে পারে (আবার কোনও বিশেষ অনুমতি ছাড়া প্রয়োজন নেই) তা দেখার জন্য ইনকামিং কল.onPause()
জন্য আমরা আড্ডায় কী আলোচনা করেছি! তবে ব্যবহার onAudioFocusChange()
এমনকি কম ওভারহেড হতে পারে (ছোট পোলিং তখন অজ্ঞাতসারে হতে পারে)।
অনেক বিজ্ঞাপন প্রকাশক সকল প্রকারের ট্র্যাকিংয়ের জন্য ফোন আইডি পেতে এই অনুমতিটি ব্যবহার করে। সেখানে অন্য কোন উপায়ে একটি অনন্য আইডি পেতে আছে, কিন্তু দুর্ভাগ্যবশত তারা পুরোনো Android সংস্করণে বগী হয় (গল্প জটিল, যেমন দেখতে https://stackoverflow.com/questions/2785485/is-there-a-unique-android- আরও সম্পূর্ণ গল্পের জন্য ডিভাইস-আইডি বা http://android-developers.blogspot.com/2011/03/phanfying-app-installation.html )।
সুতরাং যদি অ্যাপটি বিজ্ঞাপন ব্যবহার করে তবে একটি যথাযথ সম্ভাবনা রয়েছে যে অ্যাপটি নিজেই আসলে READ_PHONE_STATE অনুমতি প্রয়োজন হয় না, কেবল বিজ্ঞাপন সরবরাহকারীই করেন।