Skip to content

Instantly share code, notes, and snippets.

@xdegtyarev
Created December 12, 2012 13:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xdegtyarev/4267788 to your computer and use it in GitHub Desktop.
Save xdegtyarev/4267788 to your computer and use it in GitHub Desktop.
GettingResolutionStringJNI
using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices;
using System;
public class DisplayManagerJNI : MonoBehaviour {
private IntPtr JavaClass;
private string getResolution;
void Start ()
{
JavaVM.AttachCurrentThread();
IntPtr cls_Activity = JNI.FindClass("com/unity3d/player/UnityPlayer");
int fid_Activity = JNI.GetStaticFieldID(cls_Activity, "currentActivity", "Landroid/app/Activity;");
IntPtr obj_Activity = JNI.GetStaticObjectField(cls_Activity, fid_Activity);
IntPtr cls_JavaClass = JNI.FindClass("com/nival/DisplayManager/DisplayManager");
int mid_JavaClass = JNI.GetMethodID(cls_JavaClass, "<init>", "(Landroid/app/Activity;)V");
IntPtr obj_JavaClass = JNI.NewObject(cls_JavaClass, mid_JavaClass, obj_Activity);
JavaClass = JNI.NewGlobalRef(obj_JavaClass);
getResolution = JNI.GetMethodID(cls_JavaClass, "GetResolution", "()Ljava/lang/String;");
}
public string GetResolution()
{
JavaVM.AttachCurrentThread();
String str_cacheDir = JNI.CallObjectMethod(JavaClass, getResolution);
IntPtr stringPtr = JNI.GetStringUTFChars(str_cacheDir, 0);
String resolutionString = Marshal.PtrToStringAnsi(stringPtr);
JNI.ReleaseStringUTFChars(str_cacheDir, stringPtr);
return resolutionString;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment