অ্যান্ড্রয়েডে, আমি কীভাবে অ্যাপ্লিকেশনটির আইডি প্রোগ্রামআম্যাটিকভাবে পাই (বা অন্য কোনও পদ্ধতি দ্বারা), এবং কীভাবে আমি এই আইডি ব্যবহার করে অন্যান্য অ্যাপ্লিকেশনগুলির সাথে যোগাযোগ করতে পারি?
উত্তর:
আপনি applicationIdযদি গ্রেডের দ্বারা সংজ্ঞায়িত মানটির সন্ধান করছেন, আপনি কেবল ব্যবহার করতে পারেন
BuildConfig.APPLICATION_ID
যদি application idআপনি উল্লেখ করে থাকেন তবে package nameআপনি পদ্ধতিটি ব্যবহার করতে পারেন Context::getPackageName( http: // http: //developer.android.com/references/android/content/Context.html#getPackageName% ২৯% ৯৯৯ )।
আপনি যদি অন্য অ্যাপ্লিকেশনটির সাথে যোগাযোগ করতে চান তবে একাধিক উপায় রয়েছে:
আপনি যদি আপনার যথাযথ প্রয়োজনীয়তার বিবরণ দিতে পারেন তবে সম্প্রদায়টি আপনাকে আরও ভালভাবে সহায়তা করতে সক্ষম হবে।
Context.getPackageName() না আবেদন আইডি এবং আসতে না (যদিও তারা সাধারণত একই) প্যাকেজের নাম। পদ্ধতির কিছুটা বিভ্রান্তির নাম হ'ল উত্তরাধিকার। সূত্র: বিকাশকারী.অ্যান্ড্রয়েড
আপনি কোন "অ্যাপ্লিকেশন আইডি" উল্লেখ করছেন তা আমি নিশ্চিত নই, তবে আপনার অ্যাপ্লিকেশনটির একটি অনন্য পরিচয়দাতার জন্য আপনি ব্যবহার করতে পারেন:
আপনার বর্তমান কার্যকলাপ থেকে getApplication ()। getPackageName () পদ্ধতিটি পান
getApplicationContext().getPackageName()?
প্যাকেজের নামটি আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশন আইডি।
স্ট্রিং অ্যাপ্লিকেশন = বিল্ডকনফিগ AP APPLICATION_ID
বা
https://play.google.com/store/apps/details?id=com.whatsapp
অ্যাপ আইডি = com.watsapp hats
পদক্ষেপ 1: গুগল প্লে স্টোরটি খুলুন
পদক্ষেপ 2: অ্যাপ স্টোরের যে কোনও অ্যাপ খুলুন উদাহরণ: ফেসবুক
পদক্ষেপ 3: যে কোনও অ্যাপ্লিকেশনটিতে ক্লিক করুন এবং ব্রাউজার লিঙ্কটি দেখুন এবং এন্ড আইডি = com.facebook.katana & hl = en থাকবে এবং এটি আপনার অ্যাপসের অনন্য আইডি।
অন্যথায় আপনি আপনার অ্যাপ্লিকেশনটির প্রক্রিয়াকরণের আইডি পেতে পারেন:
চূড়ান্ত স্ট্যাটিক ইন্ট android.os.Process.myPid ()
এই প্রক্রিয়াটির শনাক্তকারীকে ফিরিয়ে দেয়, যা কিলপ্রসেস (ইনট) এবং সেন্ডসিনাল (ইনট, ইনট) এর সাথে ব্যবহার করা যেতে পারে।
আপনার কীসের জন্য অ্যাপ / ইনস্টলেশন আইডি দরকার তা আমি নিশ্চিত নই, তবে অ্যান্ড্রয়েড বিকাশকারীদের একটি দুর্দান্ত নিবন্ধে আপনি বিদ্যমান সম্ভাবনাগুলি পর্যালোচনা করতে পারেন:
সংক্ষেপে:
UUID.randomUUID() প্রথমবার আইডি তৈরির জন্য কোনও অ্যাপ্লিকেশন ইনস্টলের পরে চালিত হয় এবং পরে সহজ পুনরুদ্ধার হয়TelephonyManager.getDeviceId() প্রকৃত ডিভাইস শনাক্তকারীর জন্যSettings.Secure.ANDROID_ID তুলনামূলকভাবে আধুনিক ডিভাইসগুলিতেPackageInfo.sharedUserIdক্ষেত্র ব্যবহারকারী আইডি দেখাবে ম্যানিফেস্টে নির্ধারিত ।
আপনি যদি দুটি অ্যাপ্লিকেশন একই ব্যবহারকারী আইডির জন্য চান তবে তারা একে অপরের ডেটা দেখতে এবং একই প্রক্রিয়াতে চলতে পারে, তবে ম্যানিফেস্টে তাদের একই ব্যবহারকারীর নিয়োগ করুন:
android:sharedUserId="string"
একই শেয়ার্ড ইউজারআইডিযুক্ত দুটি প্যাকেজের একই স্বাক্ষর থাকাও দরকার।
আমি এখানে সঠিক দিকের ধাক্কা দেওয়ার জন্য পড়ারও পরামর্শ দেব ।
যদি পুরো উদ্দেশ্যটি অন্য কোনও অ্যাপ্লিকেশনটির সাথে ডেটা যোগাযোগ করা হয় তবে ইন্টেন্টের সেন্ডব্রোডকাস্ট পদ্ধতিগুলি ব্যবহার করুন।
আপনি যদি নতুন ** গ্রেডল বিল্ড সিস্টেম ব্যবহার করছেন তবে getPackageNameঅদ্ভুতভাবে অ্যাপ্লিকেশন আইডি ফিরিয়ে দেবে, প্যাকেজের নাম নয়। সুতরাং মাস্টারগৌরবের উত্তরটি সঠিক তবে তাকে ++ দিয়ে আরম্ভ করার দরকার নেই
যদি অ্যাপ্লিকেশন আইডি দ্বারা, আপনি প্যাকেজের নাম উল্লেখ করছেন ...
পার্থক্য সম্পর্কে এখানে আরও দেখুন ।
** এই মুহুর্তে তেমন নতুন নয়
++ আমি বুঝতে পারি যে তার উত্তরটি ২০১১ সালে নিখুঁতভাবে তৈরি হয়েছিল
ইনস্টলেশনগুলি ট্র্যাক করার জন্য, আপনি উদাহরণস্বরূপ একটি ইউআইডি ব্যবহার করতে পারেন এবং কোনও অ্যাপ্লিকেশন ইনস্টলের পরে প্রথমবার চালিত হলে কেবল নতুন তৈরি করতে পারে। এখানে একটি স্থিতিশীল পদ্ধতি ইনস্টলেশন.id (প্রসঙ্গ প্রসঙ্গ) সহ "ইনস্টলেশন" নামে একটি শ্রেণীর স্কেচ দেওয়া আছে। আপনি ইনস্টল ফাইলটিতে আরও ইনস্টলেশন-নির্দিষ্ট ডেটা লেখার কল্পনা করতে পারেন।
public class Installation {
private static String sID = null;
private static final String INSTALLATION = "INSTALLATION";
public synchronized static String id(Context context) {
if (sID == null) {
File installation = new File(context.getFilesDir(), INSTALLATION);
try {
if (!installation.exists())
writeInstallationFile(installation);
sID = readInstallationFile(installation);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return sID;
}
private static String readInstallationFile(File installation) throws IOException {
RandomAccessFile f = new RandomAccessFile(installation, "r");
byte[] bytes = new byte[(int) f.length()];
f.readFully(bytes);
f.close();
return new String(bytes);
}
private static void writeInstallationFile(File installation) throws IOException {
FileOutputStream out = new FileOutputStream(installation);
String id = UUID.randomUUID().toString();
out.write(id.getBytes());
out.close();
}
}
ইউন https://github.com/MShoaibAkram/Android-Unique- প্রয়োগ- আইডিতে আরও দেখতে পারেন