将应用程序放入 protected 应用程序列表时,我的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?"

我正在使用此代码将应用程序放入 protected 应用程序列表中
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();
            }

这里的问题是,这不是我可以在 list 中声明的​​我自己的 Activity 。我还必须在 list 中声明它吗?如果我必须这样做,该怎么办?

解决了原因是huawei nexus 6p具有纯Android系统,因此没有这种 Activity 。但是代码掉在那里,因为Build.MANUFACTURER返回“huawei”。但是Build.BRAND返回“google”,因此添加了其他检查
if ("huawei".equalsIgnoreCase(Build.MANUFACTURER) && !"google".equalsIgnoreCase(Build.BRAND) && !settingsManager.getKeyStateProtectedApp()

最佳答案

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

关于android - com.huawei.systemmanager/com.huawei.systemmanager.optimize.process.ProtectActivity};您是否在AndroidManifest.xml中声明了此 Activity ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47786535/

10-13 04:11