با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
برای موارد استفاده مانند تجزیه و تحلیل یا جلوگیری از تقلب در یک دستگاه خاص، ممکن است لازم باشد استفاده یا اقدامات را در مجموعهای از برنامههای متعلق به سازمان خود مرتبط کنید. خدمات Google Play یک گزینه مناسب برای حفظ حریم خصوصی به نام شناسه مجموعه برنامه ارائه می دهد.
محدوده شناسه مجموعه برنامه
شناسه مجموعه برنامه می تواند یکی از محدوده های تعریف شده زیر را داشته باشد. برای تعیین اینکه یک ID خاص با کدام محدوده مرتبط است، getScope() را فراخوانی کنید.
محدوده توسعه دهنده Google Play
برای برنامههایی که توسط فروشگاه Google Play نصب میشوند، API ID مجموعه برنامه یک شناسه را به مجموعه برنامههایی که تحت همان حساب توسعهدهنده Google Play منتشر شده است، برمیگرداند.
به عنوان مثال، فرض کنید دو برنامه را تحت حساب توسعه دهنده Google Play خود منتشر کرده اید و هر دو برنامه از طریق فروشگاه Google Play بر روی یک دستگاه نصب شده اند. برنامهها همان شناسه مجموعه برنامه را در آن دستگاه به اشتراک میگذارند. شناسه یکسان است حتی اگر برنامه ها با کلیدهای مختلف امضا شده باشند.
محدوده برنامه
تحت هر یک از شرایط زیر، مجموعه برنامه ID SDK یک شناسه منحصر به فرد برای خود برنامه تماس گیرنده در یک دستگاه خاص برمیگرداند:
این برنامه توسط نصب کننده ای غیر از فروشگاه Google Play نصب می شود.
خدمات Google Play قادر به تعیین حساب برنامهنویس Google Play برنامه نیست.
این برنامه روی دستگاهی بدون خدمات Google Play نصب شده است.
به مقدار حافظه پنهان شناسه مجموعه برنامه تکیه نکنید
تحت هر یک از شرایط زیر، شناسه مجموعه برنامه برای مجموعه معینی از برنامههای نصبشده در فروشگاه Google Play در دستگاه قابل بازنشانی است:
گروه برنامههایی که مقدار شناسه یکسانی دارند بیش از 13 ماه است که به API ID مجموعه برنامه دسترسی پیدا نکرده است.
آخرین برنامه از مجموعه برنامه های معینی از دستگاه حذف نصب می شود.
کاربر بازنشانی کارخانه ای دستگاه را انجام می دهد.
برنامه شما باید از SDK برای بازیابی مقدار شناسه هر زمان که نیاز است استفاده کند.
ID SDK مجموعه برنامه را به برنامه خود اضافه کنید
قطعه زیر یک نمونه فایل build.gradle را نشان می دهد که از کتابخانه مجموعه برنامه ID استفاده می کند:
قطعه نمونه زیر نشان می دهد که چگونه می توانید شناسه مجموعه برنامه را به طور ناهمزمان با استفاده از Tasks API در خدمات Google Play بازیابی کنید:
کاتلین
valclient=AppSet.getClient(applicationContext)asAppSetIdClientvaltask:Task<AppSetIdInfo>=client.appSetIdInfoasTask<AppSetIdInfo>task.addOnSuccessListener({// Determine current scope of app set ID.valscope:Int=it.scope// Read app set ID value, which uses version 4 of the// universally unique identifier (UUID) format.valid:String=it.id})
جاوا
Contextcontext=getApplicationContext();AppSetIdClientclient=AppSet.getClient(context);Task<AppSetIdInfo>task=client.getAppSetIdInfo();task.addOnSuccessListener(newOnSuccessListener<AppSetIdInfo>(){@OverridepublicvoidonSuccess(AppSetIdInfoinfo){// Determine current scope of app set ID.intscope=info.getScope();// Read app set ID value, which uses version 4 of the// universally unique identifier (UUID) format.Stringid=info.getId();}});
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-15 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-15 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Identify developer-owned apps\n\nFor use cases such as analytics or fraud prevention on a given device, you may\nneed to correlate usage or actions across a set of apps owned by your\norganization. [Google Play services](https://developers.google.com/android)\noffers a privacy-friendly option called [*app set ID*](https://developers.google.com/android/reference/com/google/android/gms/appset/AppSetIdInfo).\n\nApp set ID scope\n----------------\n\nThe app set ID can have one of the following defined scopes. To determine which\nscope a particular ID is associated with, call\n[`getScope()`](https://developers.google.com/android/reference/com/google/android/gms/appset/AppSetIdInfo#getScope()).\n| **Caution:** When Google Play services updates from a version that only supports app scope to a version that supports developer scope, the app set ID's value is reset automatically, without any developer action. See [other reasons developers\n| shouldn't rely on a cached value of the app set ID](#dont-rely-on-cached-value).\n\n### Google Play developer scope\n\n| **Note:** The app set SDK attempts to return app set IDs that have the developer scope without any additional developer action, unless the app satisfies the conditions for app scope, described below.\n\nFor apps that are installed by the Google Play store, the app set ID API returns\nan ID scoped to the set of apps published under the same Google Play developer\naccount.\n\nFor example, suppose you publish two apps under your Google Play developer\naccount and both apps are installed on the same device through the Google Play\nstore. The apps share the same app set ID on that device. The ID is the same\neven if the apps are signed by different keys.\n\n### App scope\n\nUnder any of the following conditions, the app set ID SDK returns an ID unique\nto the calling app itself on a given device:\n\n- The app is installed by an installer other than the Google Play store.\n- Google Play services is unable to determine an app's Google Play developer account.\n- The app is installed on a device without Google Play services.\n\nDon't rely on a cached value of app set ID\n------------------------------------------\n\nUnder any of the following conditions, the app set ID for a given set of Google\nPlay store-installed apps on a device can be reset:\n\n- The app set ID API hasn't been accessed by the groups of apps that share the same ID value for over 13 months.\n- The last app from a given set of apps is uninstalled from the device.\n- The user performs a factory reset of the device.\n\nYour app should use the SDK to retrieve the ID value every time it's needed.\n\nAdd the app set ID SDK to your app\n----------------------------------\n\nThe following snippet shows an example `build.gradle` file that uses the app set\nID library: \n\n dependencies {\n implementation 'com.google.android.gms:play-services-appset:16.1.0'\n }\n\nThe following sample snippet demonstrates how you can retrieve the app set ID\nasynchronously using the [Tasks\nAPI](https://developers.google.com/android/guides/tasks) in Google Play\nservices: \n\n### Kotlin\n\n```kotlin\nval client = AppSet.getClient(applicationContext) as AppSetIdClient\nval task: Task\u003cAppSetIdInfo\u003e = client.appSetIdInfo as Task\u003cAppSetIdInfo\u003e\n\ntask.addOnSuccessListener({\n // Determine current scope of app set ID.\n val scope: Int = it.scope\n\n // Read app set ID value, which uses version 4 of the\n // https://en.wikipedia.org/wiki/Universally_unique_identifier.\n val id: String = it.id\n})\n```\n\n### Java\n\n```java\nContext context = getApplicationContext();\nAppSetIdClient client = AppSet.getClient(context);\nTask\u003cAppSetIdInfo\u003e task = client.getAppSetIdInfo();\n\ntask.addOnSuccessListener(new OnSuccessListener\u003cAppSetIdInfo\u003e() {\n @Override\n public void onSuccess(AppSetIdInfo info) {\n // Determine current scope of app set ID.\n int scope = info.getScope();\n\n // Read app set ID value, which uses version 4 of the\n // https://en.wikipedia.org/wiki/Universally_unique_identifier.\n String id = info.getId();\n }\n});\n```"]]