- Home /
how to add a basic share button android
hello, I wish to add a simple android share button, that when pressed offers you a list of apps that you can share to. NOT JUST facebook/twitter/etc but just the list of apps that are on the phone that can be shared to. as shown below:
Answer by kaliAJ · Jan 15, 2020 at 12:45 PM
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Runtime.InteropServices;
public class socioshare : MonoBehaviour
{
string subject = "add any text here ";
string body = "share your game link here";
public void OnAndroidTextSharingClick()
{
//FindObjectOfType<AudioManager>().Play("Enter");
StartCoroutine(ShareAndroidText());
}
IEnumerator ShareAndroidText()
{
yield return new WaitForEndOfFrame();
//execute the below lines if being run on a Android device
//Reference of AndroidJavaClass class for intent
AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
//Reference of AndroidJavaObject class for intent
AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");
//call setAction method of the Intent object created
intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND"));
//set the type of sharing that is happening
intentObject.Call<AndroidJavaObject>("setType", "text/plain");
//add data to be passed to the other activity i.e., the data to be sent
intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), subject);
intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TITLE"), "TITLE");
intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), subject);
intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), body);
//get the current activity
AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
//start the activity by sending the intent data
AndroidJavaObject jChooser = intentClass.CallStatic<AndroidJavaObject>("createChooser", intentObject, "Share Via");
currentActivity.Call("startActivity",jChooser);
}
}
@hhhdshsdfh I am using this script to share the game link to all the social media apps. but the problem I am facing is that I am unable to print the 1st string "subject" in the message to be shared. 2nd string "body is being printed accurately. Rest everything works fine
Your answer
![](https://koobas.hobune.stream/wayback/20220611234114im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Not Able to see Joystick & Button after deploying game to Android Device 1 Answer
how to check if touching an guitexture android 0 Answers
how do i use GUI buttons with a android device(tablet) 2 Answers
Parsing Error, code in android for a button 2 Answers
Need UI control buttons for a 2D android side scroller 2 Answers