0

I want to share something (like a text, image, etc) using a link with Android Intents. For example:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, someTextView.getText());
sendIntent.setType("text/plain");
Intent shareIntent = Intent.createChooser(sendIntent, null);
startActivity(shareIntent);

This code allows me to share a text. But I want that this content will be shared with a link, like this:

https://my-aplication/someText

And then, when the user enters in the page, gets the current shared text. How can I do that? I investigated about using Android App Links, but I didn't understand very well. Also I tried to search in other places but I didn't find anything. Thanks for helping!

1 Answers1

0

After investigating about this topic, I found Google Firebase Dynamic Links. I watched some videos about this topic. This code generates a key which can be shared by a link. First, you must create a dynamic link in you firebase console. Then, you add these methods. Here's the first method to get Dynamic link data:

FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent()).addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {

        @Override
        public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {

            // getting deep link
            Uri deeplink = null;
            if(pendingDynamicLinkData != null){
                deeplink = pendingDynamicLinkData.getLink();
            }

            // getting deeplink content
            if(deeplink != null)
            {
                String sharedList = deeplink.getQueryParameter("sharedList");
                userReference[0] = database.getReference(sharedList);
            }
            else userReference[0] = database.getReference().push();
            

        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Toast.makeText(MainActivity.this, "Ooops, we couldn't get the link data :(", Toast.LENGTH_SHORT).show();
        }
    });

And here's the second one, to generate a link:

// generating dynamic link
private void GenerateLink(String listId) {


    System.out.println("Generating link: " + listId);
    DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLink(Uri.parse("https://www.your_dynamic_link.com/?your_variable_to_share=" + value))
            .setDomainUriPrefix("https://your_short_url.page.link")
            .setAndroidParameters(
                    new DynamicLink.AndroidParameters.Builder("com.example.your_package")
                            .setMinimumVersion(1)
                            .build())
            .buildDynamicLink();

    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, "I share you my list: " + dynamicLink.getUri());
    sendIntent.setType("text/plain");
    startActivity(sendIntent);

}