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

نویسنده : golaleh hoseini بروز شده در : 9 روز 18 ساعت قبل آخرین مطالعه 1 روز 2 ساعت قبل دسته ها : اندروید

با شروع  راه اندازی سیستم 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

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


قیمت (تومان)
رایگان
وضعیت
تکمیل شده

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

هک و امنیت

هک و امنیت

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

آخرین بروزرسانی 10 ماه 12 روز قبل

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

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

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

آخرین بروزرسانی 9 ماه 23 روز قبل

جاوا اسکریپت

جاوا اسکریپت

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

آخرین بروزرسانی 10 ماه 12 روز قبل

نود جی اس

نود جی اس

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

آخرین بروزرسانی 10 ماه 13 روز قبل

سوالات و گفتگوها

logo-samandehi
تماس با ما

می توانید از طریق اطلاعات زیر با ما در ارتباط باشید.

درباره ما

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