gpt4 book ai didi

android - 为 Android 7 中未出现的应用选择默认启动器

转载 作者:行者123 更新时间:2023-11-30 04:53:55 24 4
gpt4 key购买 nike

我有一个作为启动器运行的应用程序,在 Android 4 中运行良好,但在 Android 7 和 8 中,选择启动器对话框未出现

enter image description here

// 
// Decompiled by Procyon v0.5.36
//

package com.r7developers.unityplugin;

import android.os.Build;
import android.annotation.TargetApi;
import android.os.Process;
import android.app.AppOpsManager;
import android.content.Intent;
import com.rvalerio.fgchecker.AppChecker;
import android.content.Context;

public class Plugin
{
static Context mContext;
static String mBundleIdentifier;
static AppChecker mAppChecker;

public static void init(final Context context, final String bundleIdentifier) {
Plugin.mContext = context;
Plugin.mBundleIdentifier = bundleIdentifier;
}

public static void start() {
Plugin.mAppChecker = new AppChecker();
Plugin.mAppChecker.other((AppChecker.Listener)new AppChecker.Listener() {
public void onForeground(final String packageName) {
if (packageName != null && !packageName.contains(Plugin.mBundleIdentifier)) {
final Intent startHomescreen = new Intent("android.intent.action.MAIN");
startHomescreen.addCategory("android.intent.category.HOME");
startHomescreen.setFlags(268435456);
Plugin.mContext.startActivity(startHomescreen);

}
}
}).timeout(1000).start(Plugin.mContext);
}

public static void stop() {
Plugin.mAppChecker.stop();
}

public static void requestUsageStatsPermission() {
if (needsUsageStatsPermission() && !hasUsageStatsPermission()) {
Plugin.mContext.startActivity(new Intent("android.settings.USAGE_ACCESS_SETTINGS"));
}
}

@TargetApi(19)
public static boolean hasUsageStatsPermission() {
final AppOpsManager appOps = (AppOpsManager)Plugin.mContext.getSystemService("appops");
final int mode = appOps.checkOpNoThrow("android:get_usage_stats", Process.myUid(), Plugin.mContext.getPackageName());
final boolean granted = mode == 0;
return granted;
}

public static boolean needsUsageStatsPermission() {
return Build.VERSION.SDK_INT >= 21;
}

public static void openSettings() {
final Intent intent = new Intent("android.settings.SETTINGS");
intent.addFlags(268435456);
Plugin.mContext.startActivity(intent);
}
}

这段代码是从unity项目的jar插件反编译而来

有什么我遗漏的吗?

最佳答案

您的问题一定是由 list 中的某些缺失行引起的。Android 发展得非常快,一些最初为旧版本制作的应用程序可能由于权限系统的变化而不再工作。这也必须适用于 Android list 。幸运的是,您可以在旧设备上使用它,但处理新设备似乎有问题。

您是否尝试过重新编译更小版本的代码并在多个版本上测试它?

只需查看一些示例启动器(但没有使用 Unity 引擎),可以帮助您了解是否遗漏了什么。

这是我在 GitHub 上找到的(第一个)Android 启动器的链接:KISS/app/src/main/AndroidManifest.xml .

尝试添加您缺少的行,尤其是帮助 Android 了解您的应用在菜单中显示时应该注意什么的 intent-filter,例如启动器选择器。

我不是专家,但我知道使用 Android 会很痛苦。

关于android - 为 Android 7 中未出现的应用选择默认启动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59549108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com