
Amir Hossein Ghasemi
Sobald ich das Ziel aktualisiert habe SDK zu 30+ (Android R oder höher), eine Fusselwarnung Missing PendingIntent mutability flag
erschien auf meiner PendingIntent.FLAG_UPDATE_CURRENT
Flag, wenn ich definieren möchte PendingIntent
.
Wie soll ich mit diesen Fusseln umgehen, ohne die App-Funktionalität zu beeinträchtigen?

Yosidroid
Wenn Sie Ihre App in Android 12 ausführen lassen, gibt es ein neues PendingIntent-Mutability-Flag. Wenn Sie nicht möchten, dass Ihr PendingIntent mutiert wird, verwenden Sie
PendingIntent pendingIntent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
pendingIntent = PendingIntent.getActivity(this,
0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
}else {
pendingIntent = PendingIntent.getActivity(this,
0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
}
Wenn Sie möchten, dass Ihr PendingIntent mutiert wird, verwenden Sie Folgendes:
PendingIntent pendingIntent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
pendingIntent = PendingIntent.getActivity(this,
0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
}else {
pendingIntent = PendingIntent.getActivity(this,
0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
}
In der Google-Dokumentation heißt es: Erwägen Sie unbedingt die Verwendung von FLAG_IMMUTABLE, verwenden Sie FLAG_MUTABLE nur, wenn einige Funktionen davon abhängen, dass PendingIntent veränderbar ist. Der Wechsel sollte unkompliziert sein. Stellen Sie außerdem sicher, dass Sie die folgende Work Manager-Abhängigkeit hinzufügen, wenn Sie AdMob 20.4.0 oder niedriger in Ihrer App verwenden:
//Work Manager dependency
implementation 'androidx.work:work-runtime:2.7.1'
Beachten Sie, dass die aktuelle Work Manager-Abhängigkeitsversion 2.7.1 ist. Sie können die Version auf die neueste Version aktualisieren, wenn Sie möchten.

Nikunj
Wenn Ihre App zielgerichtet ist Android 12 (targetSdkVersion = 31)
und verwendet eine alte Version der Arbeitsmanager direkt ODER von einer der Bibliotheken von Drittanbietern dann müssen Sie aktualisiere es auf den neuesten Stand um es zu lösen.
dependencies {
def work_version = "2.7.1"
// (Java only)
implementation "androidx.work:work-runtime:$work_version"
// Kotlin + coroutines
implementation "androidx.work:work-runtime-ktx:$work_version"
}

Rehan Khan
Wenn Sie Ihre App in Android 12 ausführen lassen, gibt es ein neues PendingIntent-Mutability-Flag. Wenn Sie nicht möchten, dass Ihr PendingIntent stumm geschaltet wird, verwenden Sie
Java
PendingIntent updatedPendingIntent = PendingIntent.getActivity(
applicationContext,
NOTIFICATION_REQUEST_CODE,
updatedIntent,
PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT // setting the mutability flag
)
Kotlin
val updatedPendingIntent = PendingIntent.getActivity(
applicationContext,
NOTIFICATION_REQUEST_CODE,
updatedIntent,
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT // setting the mutability flag
)
Wenn Sie möchten, dass Ihr PendingIntent stummgeschaltet wird, verwenden Sie Folgendes:
Java
PendingIntent updatedPendingIntent = PendingIntent.getActivity(
applicationContext,
NOTIFICATION_REQUEST_CODE,
updatedIntent,
PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT // setting the mutability flag
)
Kotlin
val updatedPendingIntent = PendingIntent.getActivity(
applicationContext,
NOTIFICATION_REQUEST_CODE,
updatedIntent,
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT // setting the mutability flag
)
Implementieren Sie zuletzt diese Abhängigkeit
//Work Manager dependency
implementation 'androidx.work:work-runtime:2.7.1'

Niklas
In meinem Fall waren es auch Bibliotheken von Drittanbietern, die alte WorkManager-Versionen verwendeten, um die neue Android Work-Version auf alle Abhängigkeiten zu zwingen, diese in Ihrem zu verwenden Wurzel build.gradle-Datei:
allproject {
project.configurations.all {
resolutionStrategy {
force 'androidx.work:work-runtime:2.7.0'
}
}
}
10109600cookie-checkWie behebt man die Lint-Warnung „Missing PendingIntent Mutability Flag“ in Android API 30+?yes
stackoverflow.com/questions/70889493/android-12-pending-intent Kann mir jemand bei diesem Problem helfen
– Cakston MWS
12. Februar um 7:29 Uhr