پیوندهای عمیق را با برنامه های رسانه ادغام کنید

هدف این سند توصیف این است که چگونه توسعه دهندگان برنامه شخص ثالث (3P) می توانند پیوندهای عمیق به برنامه های رسانه AAOS اضافه کنند. پیوندهای عمیق رسانه به شما این امکان را می دهند که برنامه های رسانه AAOS را از طریق پیوندهای عمیق به همان روشی که در دستگاه تلفن همراه دارید باز کنید.

نسخه های پشتیبانی شده

برای دریافت آخرین نسخه پشتیبانی شده، آخرین Build Artifacts را ببینید.

  • CarMediaApp.apk
  • TestMediaApp.apk

چگونه کار می کند

هنگامی که یک پیوند عمیق در AAOS باز می شود، برنامه رسانه ای را باز می کند که این طرح خاص را مدیریت می کند. سپس برنامه رسانه URL را رمزگشایی می‌کند، یک هدف رسانه با اطلاعات آن پیوند ایجاد می‌کند و سپس از آن هدف برای باز کردن صفحه رسانه استفاده می‌کند.

پیاده سازی برای پشتیبانی از اهداف جدید و موارد اضافی جدید:

  • فرمت به روز شده ای از مقاصد را ارائه می دهد که می تواند توسط رسانه ها برای توسعه دهندگان 3P مدیریت شود تا آنها بتوانند اطلاعات لازم را از طریق intent به رسانه ارسال کنند.

  • هدف‌های برنامه‌های 3P را که حاوی یک آیتم رسانه خاص یا یک عبارت جستجو هستند مدیریت می‌کند و سپس صفحه‌ای را با اطلاعات درخواستی در رسانه باز می‌کند.

توسعه دهندگان 3P مسئول به روز رسانی برنامه خود هستند تا برنامه بتواند توسط URI وب فراخوانی شود و اطلاعات لازم را از طریق یک intent به رسانه ارسال کند.

مورد نیاز برای برنامه های 3P

TmaTrampolineActivity در برنامه TestMediaApp به عنوان مثال ارائه شده است.

مرحله 1

توسعه دهندگان باید فعالیتی مشابه TmaTrampolineActivity در TestMediaApp داشته باشند. برای پیوند عمیق، این فعالیت به یک فیلتر قصد در مانیفست نیاز دارد. این فیلتر هدف باید شامل تمام URLهایی باشد که باید مطابق با توضیح در افزودن فیلترهای هدف برای پیوندهای ورودی، مدیریت شوند.

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

<activity android:name=".automotive.TmaTrampolineActivity"
                  android:exported="true">
            <intent-filter android:label="TmaTrampolineActivity_label">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="app"
                      android:host="com.android.car.media.testmediaapp"/>
            </intent-filter>
        </activity>

مرحله 2

در این فعالیت، اپلیکیشن Media اطلاعات را از لینک بازیابی می کند و قصدی برای رسانه ایجاد می کند.

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

اطلاعات قصد

برای استفاده از این ویژگی، توسعه‌دهندگان باید جدیدترین نسخه Media را برای پشتیبانی از کنش Intent، ACTION_MEDIA_TEMPLATE_V2 نصب کنند. اقدام Intent و موارد اضافی intent زیر در کلاس MediaIntentExtras.java گنجانده شده است. این موارد اضافی را می توان به قصد اضافه کرد.

نام اضافی ارزش توضیحات
EXTRA_KEY_MEDIA_COMPONENT رشته برای componentName کلید به عنوان یک رشته اضافی با ACTION_MEDIA_TEMPLATE_V2 برای تعیین MediaBrowserService که کاربر می‌خواهد رسانه را روی آن راه‌اندازی کند، استفاده می‌شود. هنگامی که مشخص نیست، منبع رسانه فعال باز می شود.
EXTRA_KEY_MEDIA_ID شناسه رسانه کلید مورد استفاده به عنوان یک رشته اضافی با ACTION_MEDIA_TEMPLATE_V2 مورد رسانه ای را مشخص می کند که باید در نمای مرور نمایش داده شود. باید با شناسه های استفاده شده در MediaBrowserServiceCompat API مطابقت داشته باشد.
EXTRA_KEY_SEARCH_QUERY پرس و جو جستجو کلید به عنوان یک رشته اضافی با ACTION_MEDIA_TEMPLATE_V2 برای تعیین عبارت جستجو برای ارسال به MediaBrowserService فعلی یا مورد مشخص شده با EXTRA_KEY_MEDIA_COMPONENT استفاده می شود.
EXTRA_KEY_SEARCH_ACTION

عدد صحیح:

  • 0: EXTRA_VALUE_NO_SEARCH_ACTION
  • 1: EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
کلید به‌عنوان یک فیلد اضافی int با ACTION_MEDIA_TEMPLATE_V2 استفاده می‌شود تا عملی را که رسانه باید پس از بارگیری عبارت جستجو انجام دهد، مشخص می‌کند.

مقدار یکی از EXTRA_VALUE_NO_SEARCH_ACTION یا EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH است. این اضافی فقط باید با EXTRA_KEY_SEARCH_QUERY استفاده شود.

اگر این اضافی مشخص نشده باشد، پس از بارگیری نتایج جستجو، اقدام دیگری انجام نمی شود.

موارد خاص

اگر چندین مورد اضافی با هم به intent اضافه شود، مانند هر دو EXTRA_KEY_MEDIA_ID و EXTRA_KEY_SEARCH_QUERY در این intent گنجانده شود، پیاده سازی فعلی ابتدا شناسه رسانه را مدیریت می کند، و تنها زمانی که شناسه رسانه خالی است Media عبارت جستجو را اجرا می کند.

تست کنید

هنگامی که ادغام برنامه رسانه 3P کامل شد، از دستور adb برای ارسال یک پیوند عمیق استفاده کنید. رسانه با اطلاعات مورد نظر باز می شود. به عنوان مثال، این دستور برای TestMediaApp :

adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"