- Home /
Calling an android method from Unity3D with a JAR plugin
Hi, I am developing a game with Unity only for Android platform and I am requiring to share content of my game through an intent so I have implemented a JAR plugin according to several tutorials with this code:
 package a.b.c;
 
 import android.content.Intent;
 import android.os.Bundle;
 
 import com.unity3d.player.UnityPlayerActivity;
 
 public class UnityBridge extends UnityPlayerActivity {
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
     }
     
     public void callShareIntent() {
         Intent shareIntent = new Intent (Intent.ACTION_VIEW);
         startActivity(shareIntent);
     }
 }
The JAR is located at Assets/Plugins/Android with an AndroidManifest file which override the file created by unity, this is its code:
 <?xml version="1.0" encoding="utf-8"?>
 <manifest android:theme="@*android:style/Theme.NoTitleBar" android:versionCode="1" android:versionName="1.0" android:installLocation="auto" package="a.b.c"
   xmlns:android="http://schemas.android.com/apk/res/android">
     <supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" />
     <application android:label="@string/app_name" android:icon="@drawable/app_icon" android:debuggable="false">
         <activity android:label="@string/app_name" android:name="com.unity3d.player.UnityPlayerNativeActivity" android:launchMode="singleTask" android:screenOrientation="portrait" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|fontScale">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
                 <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
             </intent-filter>
             <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
             <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
         </activity>
         <activity android:name=".UnityBridge"></activity>
     </application>
     <uses-feature android:glEsVersion="0x20000" />
 </manifest>
I just copied the manifest created by Unity and added this line:
 <activity android:name=".UnityBridge"></activity>
... as you can see.
In the other hand, I have created a C# file in order to launch the share method of the plugin, this is its code:
 using UnityEngine;
 using System.Collections;
 
 public class BotonCompartir : MonoBehaviour {
     
     AndroidJavaClass androidClass;
 
     // Use this for initialization
     void Start () {
         if (Application.platform == RuntimePlatform.Android) {
             AndroidJNI.AttachCurrentThread ();
             androidClass = new AndroidJavaClass ("a.b.c.UnityBridge");
         }
     }
     
     // Update is called once per frame
     void Update () {
         if (Input.GetMouseButtonDown (0) && Application.platform == RuntimePlatform.Android) {
             androidClass.Call("callShareIntent");
         }
     }
 }
... and I have attached it to a gameobject.
When I deploy the apk to an android device nothing happens, so What am I doing wrong? Any other suggestion?
Thank you very much
Your answer
 
 
             Follow this Question
Related Questions
Multiplayer Support for Android 1 Answer
A node in a childnode? 1 Answer
Share image on selected media 1 Answer
Integrate Eclipse and Unity 0 Answers
How to pass Java object to C#? 2 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                