Created
December 12, 2012 13:39
-
-
Save xdegtyarev/4267788 to your computer and use it in GitHub Desktop.
GettingResolutionStringJNI
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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