سؤال

هل هناك خطوات مختلفة لتسجيل نشاط Android كهدف قابل للتصفح على Android 2.3 (مستوى واجهة برمجة التطبيقات 10) والإصدارات السابقة؟

لقد قمت بإعداد نشاط باستخدام مرشح نوايا يستخدم نظامًا مخصصًا:

<intent-filter>
    <action name="android.intent.action.VIEW"/>
    <category name="android.intent.category.DEFAULT"/>
    <category name="android.intent.category.BROWSABLE"/>
    <data scheme="@string/myCallbackProtocol"/>
</intent-filter>

على جهاز فعلي يعمل بالإصدار 2.3، ومع ضبط محاكي SDK على 2.3، يقوم تطبيق المتصفح بتوجيه الروابط باستخدام البروتوكول المخصص إلى التطبيق.

ومع ذلك، إذا قمت بتقليص جهاز المحاكاة إلى الإصدار 2.2 أو 2.1، فلن يقوم المتصفح بإعادة التوجيه ولكنه بدلاً من ذلك يشير إلى أنه لا يمكن العثور على الخادم.ليس لدي جهاز فعلي يشغل مستويات واجهة برمجة التطبيقات هذه.

أرغب في إصدار تطبيقي بحيث يكون متوافقًا مع الأجهزة التي تعمل بالإصدار 2.1 والإصدارات الأحدث.هل أنا مخطئ في افتراض أن هذا ممكن؟بحسب ال مستندات أندرويد Intent.CATEGORY_BROWSABLE كان متاحا منذ 1.0.

شكرًا!

هل كانت مفيدة؟

المحلول 2

تم حلها. BROWSABLE يعمل مرة أخرى على الأقل حتى Android 2.1.قبل 2.3 يبدو أن تحميل ملف <data scheme=""> من مورد سلسلة يؤدي إلى عدم تسجيل النشاط بشكل صحيح.

تغيير @string/ الإشارة إلى قيمة مرمزة تؤدي إلى النتيجة المرجوة.

<intent-filter>
    <action name="android.intent.action.VIEW"/>
    <category name="android.intent.category.DEFAULT"/>
    <category name="android.intent.category.BROWSABLE"/>
    <data scheme="my-custom-protocol"/>
</intent-filter>

نصائح أخرى

لم أواجه أي مشاكل في الاستخدام BROWSABLE العودة على الأقل إلى 2.1 إن لم يكن في وقت سابق.ومع ذلك، لم أقم بتنفيذ مخطط مخصص، ناهيك عن مخطط محدد في مورد سلسلة. وهنا مشروع عينة مما يدل على استخدام BROWSABLE.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top