Java – from intent Createchooser gets the selected application

I tried to capture intent The results of createchooser to understand the application that users choose to share

I know there are many posts related to this:

> How to know which application the user chose when using an intent chooser? > https://stackoverflow.com/questions/6137592/how-to-know-the-action-choosed-in-a-intent-createchooser?rq=1 > How to get the user selection from startActivityForResult(Intent.createChooser(fileIntent,“Open file using…”),APP_ PICKED);? > Capturing and intercepting ACTION_ SEND intents on Android

But these posts are a little old. I hope there may be some new developments

I'm trying to implement share action without appearing in the menu The closest solution I want is provided by clickclickclark, who recommends implementing a custom application selector, but this seems important In addition, it seems that there may be some Android hooks to get the selected application, such as activitychoosermodel OnChooseActivityListener.

I have the following code in mainactivity, but the onsharetargetselected method will never be called

Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT,shareMessage());
    sendIntent.setType("text/plain");

    Intent intent = Intent.createChooser(sendIntent,getResources().getText(R.string.share_prompt));

    ShareActionProvider sap = new ShareActionProvider(this);
    sap.setShareIntent(sendIntent);
    sap.setOnShareTargetSelectedListener(new ShareActionProvider.OnShareTargetSelectedListener() {
        @Override
        public boolean onShareTargetSelected(ShareActionProvider source,Intent intent) {
            System.out.println("Success!!");
            return false;
        }
    });

    startActivityForResult(intent,1);

Solution

Starting with API level 22, it is now actually possible In Android 5.1, a method (createchooser (intent target, charsequence title, intent sender sender)) is added to allow receiving the results selected by the user When you provide intentsender to create a selector, the selector dialog box will notify the sender through the user selected componentname It will be extra named extra in the notified intentsender_ CHOSEN_ Provided by component

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>