Después de la actualización de Android 12, la intención de compartir no funciona en el dispositivo Samsung S10. Este código funciona correctamente en los dispositivos con la versión 12 de Android a continuación, pero no pudo encontrar la razón por la cual Android 12 se está filtrando.
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); sharingIntent.setType("text/plain"); // (Optional) If you want a preview title, set it with Intent.EXTRA_TITLE sharingIntent.putExtra(Intent.EXTRA_TITLE, str_title); sharingIntent.putExtra(Intent.EXTRA_TEXT, "https://www.cyranolab.media/msg/?q=507dddd6-8e43-11ec-9d11-061d7e6be791"); sharingIntent.putExtra(Intent.EXTRA_SUBJECT, str_title); Intent receiver = new Intent(getActivityContext, UserSelectedShareBroadcast.class); PendingIntent pendingIntent; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { pendingIntent = PendingIntent.getActivity(getActivityContext, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); }else { pendingIntent = PendingIntent.getActivity(getActivityContext, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT); } Intent openInChooser = Intent.createChooser(sharingIntent, "Choose", pendingIntent.getIntentSender()); List<LabeledIntent> intentList = new ArrayList<>(); Intent externalEmailIntent = new Intent(getActivityContext, ExternalEmailShareActivity.class); externalEmailIntent.putExtra("programId", programId); externalEmailIntent.putExtra("sharedResourceId", sharedResourceId); externalEmailIntent.putExtra("INBOX", "Inbox"); intentList.add(new LabeledIntent(externalEmailIntent, "Package Name", "Email to", R.drawable.ic_mail_outline)); // convert intentList to array LabeledIntent[] extraIntents = intentList.toArray(new LabeledIntent[0]); openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents); int REQUEST_SHARED_URL = 2; getActivityContext.startActivityForResult(openInChooser, REQUEST_SHARED_URL); }Quiero compartir mis programas con otras aplicaciones. No puedo compartir mi programa con otras aplicaciones. No se abrió la intención de compartir, después de la actualización de Android 12.
Falta FLAG_IMMUTABLE Para declarar que un objeto PendingIntent dado es mutable o inmutable, use el indicador PendingIntent.FLAG_MUTABLE o PendingIntent.FLAG_IMMUTABLE, respectivamente. Código anterior Acabo de agregar estas líneas: Funciona bien ahora
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { pendingIntent = PendingIntent.getActivity(getActivityContext, 0, receiver, PendingIntent.FLAG_IMMUTABLE); }else { pendingIntent = PendingIntent.getActivity(getActivityContext, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT); }