Я получаю эту ошибку на своем 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()
Подробнее здесь: https://stackoverflow.com/questions/477 ... tectactivi