java - অ্যান্ড্রয়েড UserManager.isUseragoat() জন্য সঠিক ব্যবহার ক্ষেত্রে?




android (8)

আমি অ্যান্ড্রয়েড 4.2 এ চালু নতুন API এ দেখছিলামUserManager ক্লাস দেখার সময় আমি নিম্নলিখিত পদ্ধতিতে এসেছি:

public boolean isUserAGoat()

ব্যবহারকারী এই কলটি তৈরি করছে কিনা তা নির্ধারণের জন্য ব্যবহৃত হয় টেলপোর্টেশনের সাপেক্ষে।

ব্যবহারকারী এই কল একটি ছাগল কিনা কিনা তা ফেরত দেয়।

কিভাবে এবং কখন এই ব্যবহার করা উচিত?


@ ডিজেচলিন answer (উপায় দ্বারা ভাল উত্তর!) সম্পন্ন করা, আপনি কোন নির্দিষ্ট পুনরাবৃত্তি বা একটি বিশেষ পুনরাবৃত্তি কল বন্ধ করতে চান যখন এই ফাংশন কলটি আইডিই তে একটি ব্রেকপয়েন্ট ধরে রাখার জন্য ডামি কোড হিসাবে ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ:

isUserAGoat() ব্যবহার করা যেতে পারে এমন একটি ডামি পরিবর্তনশীল ঘোষণার পরিবর্তে isUserAGoat() সতর্কতা হিসাবে দেখানো হবে এবং Eclipse বিশেষ ক্ষেত্রে, ব্রেকপয়েন্ট চিহ্নটি বন্ধ করে দেবে, এটি সক্রিয় / নিষ্ক্রিয় করা কঠিন করে তোলে। যদি পদ্ধতিটি একটি কনভেনশন হিসাবে ব্যবহার করা হয়, তবে সমস্ত আমন্ত্রণগুলি পরবর্তীতে কিছু স্ক্রিপ্ট দ্বারা ফিল্টার করা যেতে পারে (প্রতিশ্রুতি পর্যায়ে?)।

গুগল বন্ধুরা ভারী গ্রহনকারী ব্যবহারকারী (তারা ইক্লিপস প্লাগইন হিসাবে তাদের বেশ কয়েকটি প্রকল্প সরবরাহ করে: অ্যান্ড্রয়েড এসডিকে, জিএইচ ইত্যাদি), তাই @ ডিজেচলিন উত্তর এবং এই পরিপূরক উত্তরটি আমাকে অনেক জ্ঞান দেয় (অন্তত আমার জন্য)।


অ্যানড্রইডের প্রতিটি সংস্করণে একটি মজার নামযুক্ত পদ্ধতি / ধ্রুবক / যা আছে।

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


একটি অনুরূপ কল রয়েছে, isUserAMonkey() , যা সত্যই ফেরত দেয় যদি MonkeyRunner টুল ব্যবহার করা হয়। এসডিকে ব্যাখ্যা শুধু এই হিসাবে হিসাবে অদ্ভুত।

public static boolean isUserAMonkey(){}     

ব্যবহারকারী ইন্টারফেস বর্তমানে বানর দ্বারা messed হচ্ছে যদি true ফিরে।

Here উৎস।

আমি আশা করি এটি একটি ছাগল দিয়ে কিছু নামে একটি নতুন SDK টুলের আগমনের সাথে যোগ করা হয়েছে এবং প্রকৃতপক্ষে সেই সরঞ্জামটির উপস্থিতি পরীক্ষা করার জন্য কার্যকরী হবে।

এছাড়াও একটি অনুরূপ প্রশ্ন দেখুন, ActivityManager মধ্যে অদ্ভুত ফাংশন: isUserAMonkey। এর মানে কি, তার ব্যবহার কি?


এটি Google এ একটি অভ্যন্তরীণ তামাশা বলে মনে হচ্ছে। এটা গুগল ক্রোম টাস্ক ম্যানেজার বৈশিষ্ট্যযুক্ত। এটির কোনও উদ্দেশ্য নেই, অন্য প্রকৌশলী ব্যতীত এটি মজাদার। যা নিজেই একটি উদ্দেশ্য, যদি আপনি করতে হবে।

  1. ক্রোমে, Shift + Esc দিয়ে টাস্ক ম্যানেজারটি খুলুন।
  2. Goats Teleported কলাম যোগ করার জন্য ডান ক্লিক করুন।
  3. আশ্চর্যের কিছু নেই।

অনেকগুলি টেলপোর্টযুক্ত ছাগল সম্পর্কেও একটি বড় Chromium বাগ রিপোর্ট রয়েছে।

নিম্নলিখিত Chromium সোর্স কোড স্নিপেট HN মন্তব্য থেকে চুরি করা হয়।

int TaskManagerModel::GetGoatsTeleported(int index) const {
  int seed = goat_salt_ * (index + 1);
  return (seed >> 16) & 255;
}

তাদের source থেকে, পদ্ধতিটি API 21 এ পরিবর্তিত না হওয়া পর্যন্ত false ফেরত ব্যবহৃত হয়।

/**
 * Used to determine whether the user making this call is subject to
 * teleportations.
 * @return whether the user making this call is a goat 
 */
public boolean isUserAGoat() {
    return false;
}

ডেভেলপার হিসাবে পদ্ধতির জন্য আমাদের কোনও বাস্তব ব্যবহার নেই বলে মনে হচ্ছে। কেউ কেউ পূর্বে বলেছেন যে এটি একটি ইস্টার ডিম হতে পারে।

এপিআই 21 এ প্যাকেজ com.coffeestainstudios.goatsimulator প্যাকেজ সঙ্গে একটি ইনস্টল করা অ্যাপ্লিকেশন আছে কিনা তা পরীক্ষা করার জন্য বাস্তবায়ন পরিবর্তন করা হয়েছে

/**
 * Used to determine whether the user making this call is subject to
 * teleportations.
 *
 * <p>As of {@link android.os.Build.VERSION_CODES#LOLLIPOP}, this method can
 * now automatically identify goats using advanced goat recognition technology.</p>
 *
 * @return Returns true if the user making this call is a goat.
 */
public boolean isUserAGoat() {
    return mContext.getPackageManager()
            .isPackageAvailable("com.coffeestainstudios.goatsimulator");
}

এখানে উৎস লিঙ্ক


নিচের উৎস কোড দেখুন দয়া করে:

/**
 * Used to determine whether the user making this call is subject to
 * teleportations.
 *
 * <p>As of {@link android.os.Build.VERSION_CODES#LOLLIPOP}, this method can
 * now automatically identify goats using advanced goat recognition technology.</p>
 *
 * @return Returns true if the user making this call is a goat.
 */
public boolean isUserAGoat() {
    return mContext.getPackageManager()
            .isPackageAvailable("com.coffeestainstudios.goatsimulator");
}

মজার ইস্টার ডিম।
ক্রোমের উবুন্টু সংস্করণে, টাস্ক ম্যানেজার ( শিফ্ট + এসসি ) তে, রাইট-ক্লিক সহ আপনি একটি বৈজ্ঞানিক-ফী কলাম যুক্ত করতে পারেন যা ইতালিয়ান সংস্করণে "ক্যাপের টেলিটাসপোর্টে" (টেলপোর্টেড ছাগল)।

এটি সম্পর্কে একটি মজার তত্ত্ব here


API 21 (প্রথম Android 5.0 / Lollipop SDK) হিসাবে , গোব সিমুলেটর অ্যাপ্লিকেশন ইনস্টল করা হয়েছে কিনা তা সনাক্ত করে:

/**
 * Used to determine whether the user making this call is subject to
 * teleportations.
 *
 * <p>As of {@link android.os.Build.VERSION_CODES#LOLLIPOP}, this method can
 * now automatically identify goats using advanced goat recognition technology.</p>
 *
 * @return Returns true if the user making this call is a goat.
 */
public boolean isUserAGoat() {
    return mContext.getPackageManager()
            .isPackageAvailable("com.coffeestainstudios.goatsimulator");
}

এইটিকে পরিষ্কার করা উচিত যে যদি ডিজিচলিনের সতর্কবার্তা মুক্ত হিসাবে ব্যবহার করা হয় if (false) একটি সম্ভাব্য বিপদজনক কৌশল। পূর্বে প্রতিটি ডিভাইসের জন্য false ফেরত দেওয়া কি এখন একটি আপাতদৃষ্টিতে র্যান্ডম মান প্রদান করে: যদি এটি আপনার কোডে গভীর গভীরভাবে সমাহিত করা হয় তবে আপনার নতুন বাগগুলি কোথা থেকে আসছে তা নির্ধারণ করতে দীর্ঘ সময় লাগতে পারে।

নিচের লাইন: যদি আপনি কোনও পদ্ধতি বাস্তবায়ন নিয়ন্ত্রণ করেন না এবং এপিআই ডকুমেন্টেশনের বিবৃতি ব্যতীত অন্যান্য উদ্দেশ্যে এটি ব্যবহার করার সিদ্ধান্ত নিচ্ছেন, তবে আপনি সমস্যার জন্য শিরোনাম দিচ্ছেন।





usermanager