ইন্টিগ্রেশন গাইড

একটি বিশ্বস্ত ওয়েব অ্যাক্টিভিটি সেট আপ করার জন্য ডেভেলপারদের জাভা কোড লেখার প্রয়োজন হয় না, তবে অ্যান্ড্রয়েড স্টুডিও প্রয়োজন। এই গাইডটি অ্যান্ড্রয়েড স্টুডিও 3.3 ব্যবহার করে তৈরি করা হয়েছে। এটি কিভাবে ইনস্টল করতে হবে তার ডক্স চেক করুন।

একটি বিশ্বস্ত ওয়েব কার্যকলাপ প্রকল্প তৈরি করুন

বিশ্বস্ত ওয়েব অ্যাক্টিভিটি ব্যবহার করার সময়, প্রজেক্টকে অবশ্যই API 16 বা তার বেশি টার্গেট করতে হবে।

অ্যান্ড্রয়েড স্টুডিও খুলুন এবং একটি নতুন অ্যান্ড্রয়েড স্টুডিও প্রকল্প শুরু করুন এ ক্লিক করুন।

অ্যান্ড্রয়েড স্টুডিও একটি কার্যকলাপের ধরন বেছে নিতে অনুরোধ করবে। যেহেতু বিশ্বস্ত ওয়েব ক্রিয়াকলাপগুলি সমর্থন লাইব্রেরি দ্বারা প্রদত্ত একটি ক্রিয়াকলাপ ব্যবহার করে, তাই কোনো কার্যকলাপ যোগ করুন নির্বাচন করুন এবং পরবর্তী ক্লিক করুন৷

পরবর্তী ধাপে, উইজার্ড প্রকল্পের জন্য কনফিগারেশনের জন্য অনুরোধ করবে। এখানে প্রতিটি ক্ষেত্রের একটি সংক্ষিপ্ত বিবরণ রয়েছে:

  • নাম: Android লঞ্চারে আপনার অ্যাপ্লিকেশনের জন্য যে নামটি ব্যবহার করা হবে।
  • প্যাকেজের নাম: প্লে স্টোর এবং অ্যান্ড্রয়েড ডিভাইসে অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য একটি অনন্য শনাক্তকারী৷ অ্যান্ড্রয়েড অ্যাপের জন্য প্যাকেজ নাম তৈরি করার প্রয়োজনীয়তা এবং সর্বোত্তম অনুশীলন সম্পর্কে আরও তথ্যের জন্য ডকুমেন্টেশন দেখুন।
  • অবস্থান সংরক্ষণ করুন: যেখানে অ্যান্ড্রয়েড স্টুডিও ফাইল সিস্টেমে প্রকল্প তৈরি করবে।
  • ভাষা: প্রকল্পের জন্য কোনো জাভা বা কোটলিন কোড লেখার প্রয়োজন নেই। ডিফল্ট হিসাবে Java নির্বাচন করুন।
  • ন্যূনতম API স্তর: সমর্থন লাইব্রেরির কমপক্ষে API স্তর 16 প্রয়োজন। API 16 নির্বাচন করুন উপরের যেকোনো সংস্করণ।

অবশিষ্ট চেকবক্সগুলিকে চেক না করে রেখে দিন, কারণ আমরা ইনস্ট্যান্ট অ্যাপস বা অ্যান্ড্রয়েডএক্স আর্টিফ্যাক্টগুলি ব্যবহার করব না এবং ফিনিশ এ ক্লিক করুন৷

বিশ্বস্ত ওয়েব অ্যাক্টিভিটি সাপোর্ট লাইব্রেরি পান

প্রজেক্টে বিশ্বস্ত ওয়েব অ্যাক্টিভিটি লাইব্রেরি সেটআপ করতে আপনাকে অ্যাপ্লিকেশন বিল্ড ফাইলটি সম্পাদনা করতে হবে। প্রজেক্ট নেভিগেটরে গ্রেডল স্ক্রিপ্ট বিভাগটি দেখুন। build.gradle নামে দুটি ফাইল আছে, যা কিছুটা বিভ্রান্তিকর হতে পারে এবং বন্ধনীর বর্ণনা সঠিকটি সনাক্ত করতে সাহায্য করে।

আমরা যে ফাইলটি খুঁজছি সেটির নামের পাশে মডিউল মডিউল রয়েছে।

ট্রাস্টেড ওয়েব অ্যাক্টিভিটিস লাইব্রেরি জাভা 8 বৈশিষ্ট্য ব্যবহার করে এবং প্রথম পরিবর্তনটি জাভা 8 সক্ষম করে। android বিভাগের নীচে একটি compileOptions বিভাগ যোগ করুন, নীচের মত:

android {
        ...
    compileOptions {
       sourceCompatibility JavaVersion.VERSION_1_8
       targetCompatibility JavaVersion.VERSION_1_8
    }
}

পরবর্তী ধাপটি প্রজেক্টে বিশ্বস্ত ওয়েব অ্যাক্টিভিটি সাপোর্ট লাইব্রেরি যোগ করবে। dependencies বিভাগে একটি নতুন নির্ভরতা যোগ করুন:

dependencies {
    implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.2.0'
}

অ্যান্ড্রয়েড স্টুডিও প্রম্পটটি আরও একবার সিঙ্ক্রোনাইজ করার অনুরোধ দেখাবে। Sync Now লিঙ্কে ক্লিক করুন এবং এটি সিঙ্ক্রোনাইজ করুন।

বিশ্বস্ত ওয়েব কার্যকলাপ চালু করুন

অ্যান্ড্রয়েড অ্যাপ ম্যানিফেস্ট সম্পাদনা করে বিশ্বস্ত ওয়েব কার্যকলাপ সেট আপ করা হয়।

প্রজেক্ট নেভিগেটরে , অ্যাপের বিভাগটি প্রসারিত করুন, ম্যানিফেস্টগুলি অনুসরণ করুন এবং ফাইলটি খুলতে AndroidManifest.xml এ ডাবল ক্লিক করুন।

যেহেতু আমরা অ্যান্ড্রয়েড স্টুডিওকে আমাদের প্রোজেক্ট তৈরি করার সময় কোনো অ্যাক্টিভিটি যোগ না করতে বলেছি, তাই ম্যানিফেস্টটি খালি এবং এতে শুধুমাত্র অ্যাপ্লিকেশন ট্যাগ রয়েছে।

application ট্যাগে একটি activity ট্যাগ সন্নিবেশ করে বিশ্বস্ত ওয়েব কার্যকলাপ যোগ করুন:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.twa.myapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning">
        <activity
            android:name="com.google.androidbrowserhelper.trusted.LauncherActivity">

           <!-- Edit android:value to change the url opened by the Trusted Web Activity -->
           <meta-data
               android:name="android.support.customtabs.trusted.DEFAULT_URL"
               android:value="https://airhorner.com" />

           <!-- This intent-filter adds the Trusted Web Activity to the Android Launcher -->
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>

           <!--
             This intent-filter allows the Trusted Web Activity to handle Intents to open
             airhorner.com.
           -->
           <intent-filter>
               <action android:name="android.intent.action.VIEW"/>
               <category android:name="android.intent.category.DEFAULT" />
               <category android:name="android.intent.category.BROWSABLE"/>

               <!-- Edit android:host to handle links to the target URL-->
               <data
                 android:scheme="https"
                 android:host="airhorner.com"/>
           </intent-filter>
        </activity>
    </application>
</manifest>

XML-এ যোগ করা ট্যাগগুলি হল আদর্শ Android অ্যাপ ম্যানিফেস্ট । বিশ্বস্ত ওয়েব ক্রিয়াকলাপগুলির প্রসঙ্গের জন্য দুটি প্রাসঙ্গিক তথ্য রয়েছে:

  1. meta-data ট্যাগ বিশ্বস্ত ওয়েব কার্যকলাপকে বলে যে এটি কোন URL খুলতে হবে৷ আপনি যে PWA খুলতে চান তার URL দিয়ে android:value বৈশিষ্ট্যটি পরিবর্তন করুন। এই উদাহরণে, এটি হল https://airhorner.com
  2. দ্বিতীয় intent-filter ট্যাগটি বিশ্বস্ত ওয়েব অ্যাক্টিভিটিকে https://airhorner.com খোলার Android ইন্টেন্টগুলিকে বাধা দেওয়ার অনুমতি দেয়। data ট্যাগের ভিতরে থাকা android:host অ্যাট্রিবিউটটি অবশ্যই বিশ্বস্ত ওয়েব অ্যাক্টিভিটি দ্বারা খোলা ডোমেনের দিকে নির্দেশ করবে৷

পরবর্তী বিভাগে ওয়েবসাইট এবং অ্যাপের মধ্যে সম্পর্ক যাচাই করতে এবং ইউআরএল বার সরাতে ডিজিটাল অ্যাসেটলিঙ্কগুলি কীভাবে সেটআপ করতে হয় তা দেখাবে।

URL বার সরান

ইউআরএল বার সরাতে বিশ্বস্ত ওয়েব অ্যাক্টিভিটিগুলির জন্য অ্যান্ড্রয়েড অ্যাপ্লিকেশন এবং ওয়েবসাইটের মধ্যে একটি অ্যাসোসিয়েশন প্রয়োজন।

এই অ্যাসোসিয়েশনটি ডিজিটাল অ্যাসেট লিঙ্কের মাধ্যমে তৈরি করা হয়েছে এবং অ্যাসোসিয়েশনটিকে অবশ্যই অ্যাপ থেকে ওয়েবসাইট এবং ওয়েবসাইট থেকে অ্যাপে লিঙ্ক করে উভয় উপায়ে প্রতিষ্ঠিত হতে হবে।

ওয়েবসাইট যাচাইকরণের জন্য অ্যাপটিকে সেটআপ করা এবং ডিবাগিংয়ের উদ্দেশ্যে ওয়েবসাইটটিকে অ্যাপ যাচাইকরণে এড়িয়ে যেতে Chrome সেটআপ করা সম্ভব।

স্ট্রিং রিসোর্স ফাইল app > res > values > strings.xml এবং নিচে ডিজিটাল অ্যাসেটলিঙ্ক স্টেটমেন্ট যোগ করুন:

<resources>
    <string name="app_name">AirHorner Trusted Web Activity</string>
    <string name="asset_statements">
        [{
            \"relation\": [\"delegate_permission/common.handle_all_urls\"],
            \"target\": {
                \"namespace\": \"web\",
                \"site\": \"https://airhorner.com\"}
        }]
    </string>
</resources>

ট্রাস্টেড ওয়েব অ্যাক্টিভিটি দ্বারা খোলা স্কিমা এবং ডোমেনের সাথে মেলে site অ্যাট্রিবিউটের বিষয়বস্তু পরিবর্তন করুন।

অ্যান্ড্রয়েড অ্যাপ ম্যানিফেস্ট ফাইলে ফিরে যান, AndroidManifest.xml , একটি নতুন meta-data ট্যাগ যোগ করে বিবৃতিতে লিঙ্ক করুন, কিন্তু এবার application ট্যাগের শিশু হিসাবে:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.twa.myapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <meta-data
            android:name="asset_statements"
            android:resource="@string/asset_statements" />

        <activity>
            ...
        </activity>

    </application>
</manifest>

আমরা এখন অ্যান্ড্রয়েড অ্যাপ্লিকেশন থেকে ওয়েবসাইটের সাথে একটি সম্পর্ক স্থাপন করেছি। অ্যাপ্লিকেশন যাচাইকরণের জন্য ওয়েবসাইট তৈরি না করে সম্পর্কের এই অংশটিকে ডিবাগ করা সহায়ক।

একটি বিকাশ ডিভাইসে এটি কীভাবে পরীক্ষা করবেন তা এখানে:

ডিবাগ মোড সক্ষম করুন

  1. ডেভেলপমেন্ট ডিভাইসে Chrome খুলুন, chrome://flags এ নেভিগেট করুন, নন-রুটেড ডিভাইসে Enable কমান্ড লাইন নামে একটি আইটেম খুঁজুন এবং এটিকে ENABLED- এ পরিবর্তন করুন এবং তারপর ব্রাউজারটি পুনরায় চালু করুন।
  2. এরপরে, আপনার অপারেটিং সিস্টেমের টার্মিনাল অ্যাপ্লিকেশনে, অ্যান্ড্রয়েড ডিবাগ ব্রিজ ব্যবহার করুন (অ্যান্ড্রয়েড স্টুডিওতে ইনস্টল করা), এবং নিম্নলিখিত কমান্ডটি চালান:
adb shell "echo '_ --disable-digital-asset-link-verification-for-url=\"https://airhorner.com\"' > /data/local/tmp/chrome-command-line"

ক্রোম বন্ধ করুন এবং অ্যান্ড্রয়েড স্টুডিও থেকে আপনার অ্যাপ্লিকেশন পুনরায় লঞ্চ করুন। অ্যাপ্লিকেশনটি এখন পূর্ণ-স্ক্রীনে দেখানো উচিত।

অ্যাসোসিয়েশন তৈরি করার জন্য বিকাশকারীকে অ্যাপ থেকে সংগ্রহ করতে হবে এমন 2 টি তথ্য রয়েছে:

  • প্যাকেজের নাম: প্রথম তথ্য হল অ্যাপটির প্যাকেজের নাম। অ্যাপটি তৈরি করার সময় এটি একই প্যাকেজ নাম তৈরি হয়। এটি Gradle Scripts > build.gradle (মডিউল: অ্যাপ) এর অধীনে মডিউল build.gradle ভিতরেও পাওয়া যাবে এবং এটি applicationId অ্যাট্রিবিউটের মান।
  • SHA-256 ফিঙ্গারপ্রিন্ট: প্লে স্টোরে আপলোড করার জন্য অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলিকে অবশ্যই সাইন ইন করতে হবে৷ আপলোড কী-এর SHA-256 ফিঙ্গারপ্রিন্টের মাধ্যমে ওয়েবসাইট এবং অ্যাপের মধ্যে সংযোগ স্থাপন করতে একই স্বাক্ষর ব্যবহার করা হয়।

অ্যান্ড্রয়েড ডকুমেন্টেশন বিস্তারিতভাবে ব্যাখ্যা করে কিভাবে অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে একটি কী তৈরি করতে হয় । কী স্টোরের জন্য পাথ , উপনাম এবং পাসওয়ার্ডগুলি নোট করা নিশ্চিত করুন, কারণ পরবর্তী ধাপের জন্য আপনার এটির প্রয়োজন হবে।

নিম্নলিখিত কমান্ডের সাহায্যে কীটুল ব্যবহার করে SHA-256 ফিঙ্গারপ্রিন্ট বের করুন:

keytool -list -v -keystore [path] -alias [alias] -storepass [password] -keypass [password]

SHA-256 ফিঙ্গারপ্রিন্টের মান সার্টিফিকেট ফিঙ্গারপ্রিন্ট বিভাগের অধীনে প্রিন্ট করা হয়। এখানে একটি উদাহরণ আউটপুট:

keytool -list -v -keystore ./mykeystore.ks -alias test -storepass password -keypass password

Alias name: key0
Creation date: 28 Jan 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Test Test, OU=Test, O=Test, L=London, ST=London, C=GB
Issuer: CN=Test Test, OU=Test, O=Test, L=London, ST=London, C=GB
Serial number: ea67d3d
Valid from: Mon Jan 28 14:58:00 GMT 2019 until: Fri Jan 22 14:58:00 GMT 2044
Certificate fingerprints:
   SHA1: 38:03:D6:95:91:7C:9C:EE:4A:A0:58:43:A7:43:A5:D2:76:52:EF:9B
   SHA256: F5:08:9F:8A:D4:C8:4A:15:6D:0A:B1:3F:61:96:BE:C7:87:8C:DE:05:59:92:B2:A3:2D:05:05:A5:62:A5:2F:34
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

উভয় টুকরো তথ্য হাতে নিয়ে, অ্যাসেটলিঙ্কস জেনারেটরের দিকে যান, ক্ষেত্রগুলি পূরণ করুন এবং জেনারেট স্টেটমেন্ট টিপুন। উত্পন্ন বিবৃতিটি অনুলিপি করুন এবং URL /.well-known/assetlinks.json থেকে এটি আপনার ডোমেন থেকে পরিবেশন করুন।

একটি আইকন তৈরি করা হচ্ছে

যখন অ্যান্ড্রয়েড স্টুডিও একটি নতুন প্রকল্প তৈরি করে, তখন এটি একটি ডিফল্ট আইকন সহ আসবে। একজন বিকাশকারী হিসাবে, আপনি আপনার নিজস্ব আইকন তৈরি করতে এবং Android লঞ্চারে আপনার অ্যাপ্লিকেশনটিকে অন্যদের থেকে আলাদা করতে চাইবেন৷

অ্যান্ড্রয়েড স্টুডিওতে ইমেজ অ্যাসেট স্টুডিও রয়েছে, যা প্রতিটি রেজোলিউশন এবং আপনার অ্যাপ্লিকেশনের প্রয়োজনের আকারের জন্য সঠিক আইকন তৈরি করার জন্য প্রয়োজনীয় সরঞ্জাম সরবরাহ করে।

অ্যান্ড্রয়েড স্টুডিওর ভিতরে, File > New > Image Asset নেভিগেট করুন, Launcher Icons (Adaptative and Legacy) নির্বাচন করুন এবং উইজার্ড থেকে পদক্ষেপগুলি অনুসরণ করুন। অ্যাপ্লিকেশনের জন্য একটি কাস্টম আইকন তৈরি করতে।

একটি স্বাক্ষরিত APK তৈরি করা হচ্ছে

আপনার ডোমেনে assetlinks ফাইল এবং Android অ্যাপ্লিকেশানে কনফিগার করা asset_statements ট্যাগ সহ, পরবর্তী ধাপ হল একটি স্বাক্ষরিত অ্যাপ তৈরি করা। আবার, এর জন্য পদক্ষেপগুলি ব্যাপকভাবে নথিভুক্ত করা হয়েছে

আউটপুট APK একটি পরীক্ষা ডিভাইসে ইনস্টল করা যেতে পারে, adb ব্যবহার করে:

adb install app-release.apk

যদি যাচাইকরণের ধাপটি ব্যর্থ হয় তবে আপনার OS এর টার্মিনাল থেকে এবং সংযুক্ত পরীক্ষা ডিভাইসের মাধ্যমে Android ডিবাগ ব্রিজ ব্যবহার করে ত্রুটি বার্তাগুলি পরীক্ষা করা সম্ভব।

adb logcat | grep -e OriginVerifier -e digital_asset_links

আপলোড APK তৈরি করে, আপনি এখন অ্যাপটি প্লে স্টোরে আপলোড করতে পারেন।

একটি স্প্ল্যাশ স্ক্রিন যোগ করা হচ্ছে

Chrome 75 থেকে শুরু করে, বিশ্বস্ত ওয়েব অ্যাক্টিভিটি স্প্ল্যাশ স্ক্রিনগুলির জন্য সমর্থন করে৷ প্রকল্পে কয়েকটি নতুন ইমেজ ফাইল এবং কনফিগারেশন যোগ করে স্প্ল্যাশ স্ক্রিন সেট আপ করা যেতে পারে।

Chrome 75 বা তার উপরে আপডেট করা নিশ্চিত করুন এবং বিশ্বস্ত ওয়েব অ্যাক্টিভিটি সাপোর্ট লাইব্রেরির সর্বশেষ সংস্করণ ব্যবহার করুন।

স্প্ল্যাশ স্ক্রিনের জন্য ছবি তৈরি করা হচ্ছে

অ্যান্ড্রয়েড ডিভাইসের বিভিন্ন স্ক্রীন সাইজ এবং পিক্সেল ঘনত্ব থাকতে পারে। সমস্ত ডিভাইসে স্প্ল্যাশ স্ক্রিনটি ভাল দেখায় তা নিশ্চিত করতে, আপনাকে প্রতিটি পিক্সেল ঘনত্বের জন্য চিত্র তৈরি করতে হবে।

ডিসপ্লে-স্বাধীন পিক্সেলের (ডিপি বা ডিপ) একটি সম্পূর্ণ ব্যাখ্যা এই নিবন্ধের সুযোগের বাইরে, তবে একটি উদাহরণ হল 320x320dp একটি চিত্র তৈরি করা, যা যেকোনো ঘনত্বের ডিভাইসের স্ক্রিনে 2x2 ইঞ্চির একটি বর্গকে প্রতিনিধিত্ব করে এবং mdpi ঘনত্বে 320x320 পিক্সেলের সমতুল্য।

সেখান থেকে আমরা অন্যান্য পিক্সেল ঘনত্বের জন্য প্রয়োজনীয় মাপ বের করতে পারি। নীচে পিক্সেলের ঘনত্বের একটি তালিকা, বেস সাইজ (320x320dp) এর মাল্টিপ্লায়ার প্রয়োগ করা হয়েছে, ফলে পিক্সেলের আকার এবং Android স্টুডিও প্রোজেক্টে ছবিটি যোগ করা উচিত এমন অবস্থান।

ঘনত্ব গুণক আকার প্রকল্পের অবস্থান
mdpi (বেসলাইন) 1.0x 320x320 px /res/drawable-mdpi/
ldpi 0.75x 240x240 px /res/drawable-ldpi/
hdpi 1.5x 480x480 px /res/drawable-hdpi/
xhdpi 2.0x 640x640 px /res/drawable-xhdpi/
xxhdpi 3.0x 960x960 px /res/drawable-xxhdpi/
xxxhdpi 4.0x 1280x1280 px /res/drawable-xxxhdpi/

অ্যাপ্লিকেশন আপডেট করা হচ্ছে

স্প্ল্যাশ স্ক্রিনের জন্য ইমেজ তৈরি করা হয়েছে, এটি প্রকল্পে প্রয়োজনীয় কনফিগারেশন যোগ করার সময়।

প্রথমে, Android ম্যানিফেস্টে ( AndroidManifest.xml ) একটি বিষয়বস্তু-প্রদানকারী যোগ করুন।

<application>
    ...
    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="com.example.twa.myapplication.fileprovider"
        android:grantUriPermissions="true"
        android:exported="false">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/filepaths" />
    </provider>
</application>

তারপর, res/xml/filepaths.xml রিসোর্স যোগ করুন, এবং twa স্প্ল্যাশ স্ক্রিনের পাথ নির্দিষ্ট করুন:

<paths>
    <files-path path="twa_splash/" name="twa_splash" />
</paths>

অবশেষে, লঞ্চার অ্যাক্টিভিটি কাস্টমাইজ করতে অ্যান্ড্রয়েড ম্যানিফেস্টে meta-tags যোগ করুন:

<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity">
    ...
    <meta-data android:name="android.support.customtabs.trusted.SPLASH_IMAGE_DRAWABLE"
               android:resource="@drawable/splash"/>
    <meta-data android:name="android.support.customtabs.trusted.SPLASH_SCREEN_BACKGROUND_COLOR"
               android:resource="@color/colorPrimary"/>
    <meta-data android:name="android.support.customtabs.trusted.SPLASH_SCREEN_FADE_OUT_DURATION"
               android:value="300"/>
    <meta-data android:name="android.support.customtabs.trusted.FILE_PROVIDER_AUTHORITY"
               android:value="com.example.twa.myapplication.fileprovider"/>
    ...
</activity>

নিশ্চিত করুন যে android.support.customtabs.trusted.FILE_PROVIDER_AUTHORITY ট্যাগের মান provider ট্যাগের ভিতরে android:authorities অ্যাট্রিবিউটের সংজ্ঞায়িত মানের সাথে মেলে।

লঞ্চার অ্যাক্টিভিটি স্বচ্ছ করা

উপরন্তু, LauncherActivity-এর জন্য একটি স্বচ্ছ থিম সেট করে স্প্ল্যাশের আগে সাদা স্ক্রীন দেখানো এড়াতে LauncherActivity স্বচ্ছ কিনা তা নিশ্চিত করুন:

<application>
    ...
    <activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
              android:theme="@android:style/Theme.Translucent.NoTitleBar">
    ...
    </activity>
</application>

আমরা বিশ্বস্ত ওয়েব অ্যাক্টিভিটিগুলির সাথে বিকাশকারীরা কী তৈরি করে তা দেখার জন্য উন্মুখ৷ যেকোনো প্রতিক্রিয়া জানাতে, @ChromiumDev- এ আমাদের সাথে যোগাযোগ করুন।