Je me suis référé ici jusqu'à ce que j'appelle jar en premier lieu https://ghoul-life.hatenablog.com/entry/2019/01/26/030622
Lorsque j'ai essayé d'appeler la fonction liée au capteur du terminal dans la méthode java appelée, NoClassDefFoundError s'est produite Apparemment, je perds la trace de la classe elle-même lorsque j'essaie d'utiliser le contexte Android dans une méthode.
J'ai trouvé un moyen d'envoyer le contexte Android d'Unity vers java et l'appel a réussi. https://www.itread01.com/content/1546405986.html
Unity:
AndroidJavaClass androidJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = androidJavaClass.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject javaPlayer = new AndroidJavaObject("jp.co.sample.MyClass");
string isSensorAvalable = javaPlayer.Call<string>("myMethod", activity);
// Avec ou sans capteur de pas "true" / "false"
Java:
public String myMethod(Activity mainActivity) {
Context context = (Context) mainActivity;
PackageManager packageManager = context.getPackageManager();
return String.valueOf(packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_STEP_COUNTER));
//歩数センサーが端末にあるかどうかを返す }
Recommended Posts