com.huawei.systemmanager / com.huawei.systemmanager.optimize.process.ProtectActivity};你有没有在AndroidManifest.xml中声明这个活动?

时间:2017-12-13 06:02:30

标签: android

我在huawei nexus 6p上收到此错误,同时将应用程序放入受保护的应用列表中。

"UncaughtException: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.huawei.systemmanager/com.huawei.systemmanager.optimize.process.ProtectActivity}; have you declared this activity in your AndroidManifest.xml?"

我正在使用此代码将应用程序置于受保护的应用列表中

if ("huawei".equalsIgnoreCase(Build.MANUFACTURER) && !settingsManager.getKeyStateProtectedApp()) {
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("Is app killing?").setMessage("Add LastingSales to protected apps list to keep it running in background.")
                        .setPositiveButton("YES", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                Intent intent = new Intent();
                                intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity"));
                                startActivity(intent);
                                settingsManager.setKeyStateProtectedApp(true);
                            }
                        }).create().show();
            }

这里的问题是,这不是我自己的活动,我可以在清单中声明。我还需要在舱单中申报吗?如果我必须那么我怎么能这样做?

已解决原因是huawei nexus 6p拥有纯粹的android,因此没有这样的活动。但是代码正在下降,因为Build.MANUFACTURER返回“huawei”。但Build.BRAND返回“google”,因此添加了额外的检查

if ("huawei".equalsIgnoreCase(Build.MANUFACTURER) && !"google".equalsIgnoreCase(Build.BRAND) && !settingsManager.getKeyStateProtectedApp()

2 个答案:

答案 0 :(得分:1)

if条款需要仔细检查制造商和品牌,以便它只在适合的手机上运行。

答案 1 :(得分:0)

我用这个方法来检查设备是否可以打开这样的意图,但仍然为华为返回true但仍然崩溃,讨厌这个制造商

fun Intent.canBeHandled(packageManager: PackageManager): Boolean {
    return resolveActivity(packageManager) != null
}
<块引用>

致命异常:android.content.ActivityNotFoundException 无法 查找显式活动类 {com.huawei.systemmanager/com.huawei.systemmanager.optimize.process.ProtectActivity}; 您是否在 AndroidManifest.xml 中声明了此活动? com.helge.droiddashcam.base.utils.IntentUtil.autoStartSettings