I'm trying to write Unity plugin to give access to getSimOperatorName()
and getNetworkOperatorName()
functions of Native Android. In Android Studio I am creating an AAR lib with 2 classes, that you can see below...
package com.eppz.myplugin;
import android.app.Activity;
import android.content.Context;
import android.telephony.TelephonyManager;
public class My_Plugin extends Activity
{
static Context context = MyApplication.getContext();
static String test = "";
public static String getMessage()
{
TelephonyManager telephonyManager = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE));
try {
test = telephonyManager.getSimOperatorName();
}catch (Exception e){
test = e.getMessage();
}
return test;
}
}
Second class:
package com.eppz.myplugin;
import android.app.Application;
import android.content.Context;
public class MyApplication extends Application {
private static Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = getApplicationContext();
}
public static Context getContext() {
return mContext;
}
Error Log:
05-08 05:23:26.245 30107-30152/? I/Unity: AndroidJavaException: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
at com.eppz.myplugin.My_Plugin.getMessage(My_Plugin.java:15)
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.a(Unknown Source)
at com.unity3d.player.UnityPlayer$c$1.handleMessage(Unknown Source)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:135)
at com.unity3d.player.UnityPlayer$c.run(Unknown Source)
at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <filename unknown>:0
at UnityEngine.AndroidJNISafe.CallStaticStringMethod (IntPtr clazz, IntPtr methodID, UnityEngine.jvalue[] args) [0x00000] in <filename unknown>:0
at UnityEngine.Androi