Skip to content Skip to sidebar Skip to footer

Intent Action_send Doesn't Show Every Browser

I have a button which fires a ACTION_SEND intent when clicked as below: private static final String WEB_URL = 'https://www.google.ca/'; @Override public void onClick(View v) {

Solution 1:

Solution

I was able to achieve what I wanted above after some research.

The key is to use 'Intent.EXTRA_INITIAL_INTENTS' and a custom Activity.

SomeActivity's onClick Event

privatestaticfinalStringWEB_URL="https://www.google.ca/";

@OverridepublicvoidonClick(View v) {
    Intentintent=newIntent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.setData(Uri.parse(WEB_URL));

    IntentclipboardIntent=newIntent(SomeActivity.this, CopyToClipboardActivity.class);
    clipboardIntent.setData(Uri.parse(WEB_URL));

    IntentchooserIntent= Intent.createChooser(intent, "Custom Title...");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, newIntent[] {clipboardIntent});
    startActivity(chooserIntent);
}

Add 'CopyToClipboardActivity' to Manifest

<activity android:name=".activities.CopyToClipboardActivity"
    android:exported="false"
    android:icon="@drawable/someIcon"
    android:label="@string/copy_to_clipboard"
    android:theme="@android:style/Theme.NoDisplay"/>

CopyToClipboardActivity.java

publicclassCopyToClipboardActivityextendsActivity {
    @OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Uriuri= getIntent().getData();
        if (uri != null) {
            copyTextToClipboard(uri.toString());
            Toast.makeText(this, "Link copied to clipboard", Toast.LENGTH_SHORT).show();
        }

        // Finish right away. We don't want to actually display a UI.
        finish();
    }

    privatevoidcopyTextToClipboard(String url) {
        ClipboardManagerclipboard= (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        ClipDataclip= ClipData.newPlainText("URL", url);
        clipboard.setPrimaryClip(clip);
    }
}

Post a Comment for "Intent Action_send Doesn't Show Every Browser"