1

我按照本教程更新了一些语法。当我在虚拟设备(Pixel 2 Android 11)上运行时,应用程序已安装。点击按钮让我成功祝酒“成功添加贴纸”,贴纸被添加到我的 Gboard。

当我尝试在物理设备(也是 Pixel 2 Android 11)上安装应用程序时,应用程序已安装,我得到了同样成功的 toast,但在 Gboard 中找不到贴纸。这似乎是该教程帖子评论中的常见问题,但作者没有给出答案。

为什么贴纸没有出现在物理设备上的 Gboard 中的核心问题可能是什么?

编辑:我应该补充一点,该应用程序是通过内部测试安装在物理设备上的,而不是在调试环境中。本周我无法使用实体 Android 设备。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.lyra.sooperturkeystickerpack">
    <!-- Grant the AppIndexingUpdateService permission and enable it to run after being triggered -->
    <uses-permission android:name="android.permission.WAKE_LOCK"/>

    <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">
        <activity
            android:name="com.lyra.sooperturkeystickerpack.HomeActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Holo.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="mystickers"/>
                <data android:host="sooperturkeystickerpack"/>
            </intent-filter>
        </activity>
        <service
            android:name="com.lyra.sooperturkeystickerpack.AppIndexingUpdateService"
            android:exported="false"
            android:permission="android.permission.BIND_JOB_SERVICE"/>
    </application>
</manifest>

应用索引更新服务

public class AppIndexingUpdateService extends JobIntentService {
    // Job-ID must be unique across your whole app.
    private static final int UNIQUE_JOB_ID = 42;

    public static void enqueueWork(Context context) {
        enqueueWork(context, AppIndexingUpdateService.class, UNIQUE_JOB_ID, new Intent());
    }

    @Override
    protected void onHandleWork(@NonNull Intent intent) {
        AppIndexingUtil.setStickers(getApplicationContext(), FirebaseAppIndex.getInstance());
    }
}

AppIndexingUtil

public class AppIndexingUpdateService extends JobIntentService {
    // Job-ID must be unique across your whole app.
    private static final int UNIQUE_JOB_ID = 42;

    public static void enqueueWork(Context context) {
        enqueueWork(context, AppIndexingUpdateService.class, UNIQUE_JOB_ID, new Intent());
    }

    @Override
    protected void onHandleWork(@NonNull Intent intent) {
        AppIndexingUtil.setStickers(getApplicationContext(), FirebaseAppIndex.getInstance());
    }
}

家活动

public class HomeActivity extends Activity {

    Button mBtnAddSticker;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        mBtnAddSticker = findViewById(R.id.btn_add_sticker);
        mBtnAddSticker.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AppIndexingUpdateService.enqueueWork(HomeActivity.this);
            }
        });
    }
}

贴纸

public class Sticker {
    private String mURL;

    public Sticker(String url) {
        this.mURL = url;
    }

    public String getURL() {
        return mURL;
    }

    public void setURL(String mURL) {
        this.mURL = mURL;
    }
}

贴纸数据工厂

public class StickersDataFactory {

    public static List<Sticker> getAllStickerReference() {
        String[] stickerURLRef = {
                "https://firebasestorage.googleapis.com/v0/b/sooperturkey-sticker-pac-b4f0f.appspot.com/o/ssp_10.png?alt=media&token=87a1a3b9-35df-419b-9a4a-c32c9ddd9c0b",

                "https://firebasestorage.googleapis.com/v0/b/sooperturkey-sticker-pac-b4f0f.appspot.com/o/ssp_10.png?alt=media&token=87a1a3b9-35df-419b-9a4a-c32c9ddd9c0b",

                "https://firebasestorage.googleapis.com/v0/b/sooperturkey-sticker-pac-b4f0f.appspot.com/o/ssp_1.png?alt=media&token=b4998d0c-5383-4c70-bcfd-05ca4a3cc0a7",

                "https://firebasestorage.googleapis.com/v0/b/sooperturkey-sticker-pac-b4f0f.appspot.com/o/ssp_2.png?alt=media&token=cc6a371e-7bae-412d-9959-23f82ae507e2",

                "https://firebasestorage.googleapis.com/v0/b/sooperturkey-sticker-pac-b4f0f.appspot.com/o/ssp_3.png?alt=media&token=05cb74b2-47d8-4467-b20b-d0b6eb459f29",

                "https://firebasestorage.googleapis.com/v0/b/sooperturkey-sticker-pac-b4f0f.appspot.com/o/ssp_4.png?alt=media&token=e2c3141d-68b2-4311-9174-0bcf49494467"
        };
        List<Sticker> stickerList = new ArrayList<>();
        for (int i = 0; i < stickerURLRef.length; i++) {
            stickerList.add(new Sticker(stickerURLRef[i]));
        }
        return stickerList;
    }
}
4

0 回答 0