دسترسی به داده های اشتراک گذاری شده در اندروید

با شروع  راه اندازی سیستم Android 11 (API level 30) مجموعه داده های بزرگی را ذخیره کرده است که ممکن است چندین برنامه برای استفاده موارد مانند یادگیری ماشین و پخش رسانه به آنها دسترسی داشته باشد. این قابلیت به کاهش فراوانی داده ها، هم از طریق شبکه و هم از طریق دیسک کمک می کند.

وقتی برنامه شما به دسترسی یک مجموعه داده بزرگ مشترک نیاز دارد، قبل از تعیین اینکه آیا نسخه جدید نصب شده قابلیت پشتیبانی را دارد یا نه، ابتدا می تواند به دنبال این مجموعه داده های ذخیره شده، به نام باشید. برنامه ها با استفاده از API ها در BlobStoreManager می توانند به این قابلیت مجموعه داده های اشتراک گذاری شده دسترسی پیدا کنند.

این سیستم shared data blobs را کنترل کرده و برنامه هایی را که می توانند به آنها دسترسی داشته باشند کنترل می کند. وقتی برنامه شما با data blobs همکاری می کند، می توانید با فراخوانی یکی از روش های زیر مشخص کنید که به کدام برنامه های دیگر باید دسترسی داشته باشند:

  • برای دسترسی به مجموعه خاصی از برنامه ها در یک دستگاه، نام بسته های این برنامه ها را به allowPackageAccess () منتقل کنید.
  • برای اجازه دادن به برنامه هایی که گواهینامه های آنها با استفاده از همان کلید مورد استفاده برای برنامه شما امضا شده است – مانند مجموعه برنامه ای که مدیریت می کنید -کدSameSignatureAccess () فراخوانی کنید.
  • برای اعطای دسترسی به همه برنامه های موجود در دستگاه، allowPublicAccess () فراخوانی کنید.

Access shared data blobs

این سیستم با استفاده از ابزار BlobHandle هر blob داده مشترک را نشان می دهد. هر نمونه از BlobHandle حاوی یک هش با رمزنگاری امن و برخی از جزئیات شناسایی مجموعه داده است.

برای دسترسی به blobهای داده مشترک، جزئیات شناسایی را از سرور بارگیری کنید. با استفاده از این جزئیات، بررسی کنید که آیا مجموعه داده از قبل در سیستم موجود بوده است.

مرحله بعدی به در دسترس بودن داده بستگی دارد.

  • مجموعه داده موجود است.

اگر مجموعه داده از قبل در دستگاه موجود است، همانطور که در قطعه کد زیر نشان داده شده است، از سیستم به آن دسترسی پیدا کنید:

val blobStoreManager =  
getSystemService(Context.BLOB_STORE_SERVICE) as BlobStoreManager

val blobHandle = BlobHandle.createWithSha256(sha256DigestBytes,

        "Sample photos",

        System.currentTimeMillis() + TimeUnit.DAYS.toMillis(1),

        "photoTrainingDataset")

try {

    val input = ParcelFileDescriptor.AutoCloseInputStream(

            blobStoreManager.openBlob(blobHandle))

    useDataset(input)

}

 

Kotlin

BlobStoreManager blobStoreManager =

        ((BlobStoreManager) getSystemService(Context.BLOB_STORE_SERVICE));

if (blobStoreManager != null) {

    // The label "Sample photos" is visible to the user.

    BlobHandle blobHandle = BlobHandle.createWithSha256(

            sha256DigestBytes,

            "Sample photos",

            System.currentTimeMillis() + TimeUnit.DAYS.toMillis(1),

            "photoTrainingDataset");

    try (InputStream input = new ParcelFileDescriptor.AutoCloseInputStream(

            blobStoreManager.openBlob(blobHandle))) {

        useDataset(input);

    }

}

 

Java
  • مجموعه داده در دسترس نیست

اگر مجموعه داده در دسترس نیست، همانطور که در قطعه کد زیر نشان داده شده است ، آن را از سرور بارگیری کرده و به سیستم وارد کنید:

val sessionId = blobStoreManager.createSession(blobHandle)

try {

val session = blobStoreManager.openSession(sessionId)

try {

// For this example, write 200 MiB at the beginning of the file.

val output = ParcelFileDescriptor.AutoCloseOutputStream(

session.openWrite(0, 1024 * 1024 * 200))

writeDataset(output)

session.apply {

allowSameSignatureAccess()

allowPackageAccess(your-app-package,

app-certificate)

allowPackageAccess(some-other-app-package,

app-certificate)

commit(mainExecutor, callback)

}

}

}

 

Kotlin

long sessionId = blobStoreManager.createSession(blobHandle);

try (BlobStoreManager.Session session =

blobStoreManager.openSession(sessionId)) {

// For this example, write 200 MiB at the beginning of the file.

try (OutputStream output = new ParcelFileDescriptor.AutoCloseOutputStream(

session.openWrite(0, 1024 * 1024 * 200)))

writeDataset(output);

session.allowSameSignatureAccess();

session.allowPackageAccess(your-app-package,

app-certificate);

session.allowPackageAccess(some-other-app-package,

app-certificate);

session.commit(getMainExecutor(), callback);

}

}

 

Java

در این مقاله قصد داریم تا درباره دسترسی به داده های اشتراک گذاری شده صحبت کنیم.


قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

golaleh hoseini
مدرس دوره

golaleh hoseini

مدرس دوره های سِون کلونر

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

مقالات پیشنهادی

درباره فایل Robots.txt

این فایل ربات های خزنده موتور های جستجو را راهنمایی می کنند و به آنان می فهماند که چه دایرکتوری و لینک هایی قابل بررسی و چه دایرکتوری و لینک هایی غیرقابل برررسی می باشند...


۵۳۰
۰
۲ دی ۱۳۹۹

نود جی اس

توسعه دهندگان نود جی اس, زبان جاوا اسکریپت را از یک زبان قابل اجرا در مرورگر خارج کرده و به زبانی تبدیل کردن که بتوان آن را بصورت یه اپلیکیشن مستفل اجرا کرد و ...


۶۵۶
۰
۱۲ آذر ۱۳۹۹

جاوا اسکریپت

جاوا اسکریپت یک زبان پویا و محبوب مبتنی بر شیء, داینامیک و مفسری می باشد. این زبان برای برنامه نویسی سمت سرور و کلاینت استفاده میشود که ...


۶۲۲
۰
۱۳ آذر ۱۳۹۹

اندروید

اندروید یک سیستم عامل می باشد که توسط گوگل توسعه داده میشود, این سیستم عامل بر پایه نسخه ی اصلاح شده ی هسته ی لینوکس و دیگر نرم افزار های متن باز طراحی شده است و ...


۷۵۴
۰
۲۹ آبان ۱۳۹۹