AndroidJavaClass m_UnityPlayer;
AndroidJavaObject m_CurrentActivity;
AndroidJavaClass m_ContextCombat;
// 생성자
public PermissionManager()
{
// Unity Android의 부모역할을 하는 클래스
m_UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
// 현재 실행되고 있는 Android Activity를 가져온다
m_CurrentActivity = m_UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
// 권한여부를 가져올 수 있는 클래스
m_ContextCombat = new AndroidJavaClass("android.support.v4.content.ContextCompat");
}
/** GetAndroidPhoneNumber를 Android Code로 이해할 경우.
public class CurrentActivity extends UnityPlayerActivity
{
protected void GetPhoneNumber()
{
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
PhoneNumber = tm.getLine1Number();
}
}
*/
public string GetAndroidPhoneNumber()
{
string str = "";
if (m_CurrentActivity == null)
return "";
if (IsPermissionGranted(Permissions.READ_PHONE_STATE) == false)
return "";
// 액티비티에서 Android Navtive Method 인 "getSystemService"를 호출
AndroidJavaObject pServiceObj = m_CurrentActivity.Call<AndroidJavaObject>("getSystemService", "phone");
if (pServiceObj == null)
return "";
// 자바 클래스 가져옴
AndroidJavaClass clazz = new AndroidJavaClass("java.lang.Class");
if (clazz == null)
return "";
// 자바 클래스에 있는 TelephonyManager클래스 가져옴
AndroidJavaObject pDest = clazz.CallStatic<AndroidJavaObject>("forName", "android.telephony.TelephonyManager");
if (pDest == null)
return "";
//"getSystemService"로 가져온 SystemService Instance를 TelephonyManager로 캐스팅함
AndroidJavaObject pTelephonyService = pDest.Call<AndroidJavaObject>("cast", pServiceObj);
if (pTelephonyService == null)
return "";
//이로서 pTelephonyService은 TelephonyManager의 인스턴스로 사용가능
str = pTelephonyService.Call<string>("getLine1Number");
//Debug.Log("PhoneNumber1 : " + str);
if (string.IsNullOrEmpty(str) == true)
return "";
if (str.Length > 0 && str[0] == '+')
{
str = "0" + str.Substring(3);
}
//Debug.Log("PhoneNumber2 : " + str);
return str;
}
'게임개발 > 유니티' 카테고리의 다른 글
[UniteSeoul 2020] Tips & Tricks For Using Profiler (0) | 2020.12.02 |
---|---|
AssetBundle 관리 (0) | 2020.04.13 |
단발성 진동 알람 이벤트 처리 (0) | 2019.04.24 |
unity google play games plugin 연동 문제 (0) | 2018.08.17 |
베지어 곡선 (0) | 2017.01.17 |