Dans Android 10, de nouvelles restrictions s'appliquent aux applications. Nous ne pouvons plus démarrer une activité à partir de l'arrière-plan. Bien que cela puisse convenir à la majorité des applications, c'est un coup fatal pour les applications voip qui ont besoin pour afficher un appel entrant après l'arrivée d'une notification Push.
Selon cela https://developer.Android.com/guide/components/activities/background-starts il y a une liste de conditions qui peuvent être remplies pour permettre encore l'ouverture d'une activité, mais tbh je le fais ne comprends pas tout à fait (non-anglais ici).
Ce que je sais vraiment, c'est:
Je n'ai aucune activité, tâche, backstack, etc.
L'application NE FONCTIONNE PAS MÊME
Ce que je dois réaliser:
Que puis-je faire pour ouvrir une activité pour un appel VoIP entrant dans Android 10? Sur l'écran de verrouillage et tout, tout comme un utilisateur normal s'attendrait d'une application PHONE.
Merci d'avance pour tout indice.
Vous devez demander une autorisation "dessiner sur une autre application", vous pouvez alors le faire comme les versions précédentes
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
if (!Settings.canDrawOverlays(this)) {
RequestPermission();
}
}
private void RequestPermission() {
// Check if Android P or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// Show alert dialog to the user saying a separate permission is needed
// Launch the settings activity if the user prefers
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + BuildConfig.APPLICATION_ID));
startActivityForResult(intent,
ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE);
}
}