Skip to content

Instantly share code, notes, and snippets.

@WestHillApps
Last active August 29, 2015 14:05
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 WestHillApps/715c0debcc2104d95ea0 to your computer and use it in GitHub Desktop.
Save WestHillApps/715c0debcc2104d95ea0 to your computer and use it in GitHub Desktop.
Androidで通知バー表示設定時にソフトキーボード表示で画面サイズを変更しないようにする
using UnityEngine;
using System.Collections;
public class NotScreenResizeAndroid : MonoBehaviour
{
void Start ()
{
NotScreenResizeAndroidSetting ();
}
/// <summary>
/// Androidで通知バー表示設定時にソフトキーボード表示で画面サイズを変更しないようにする
/// </summary>
void NotScreenResizeAndroidSetting ()
{
#if UNITY_ANDROID
if (Application.platform != RuntimePlatform.Android) {
return;
}
AndroidJNI.AttachCurrentThread ();
AndroidJNI.PushLocalFrame (0);
try {
// Activityを取得
using (AndroidJavaClass jcUnityPlayer = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"))
using (AndroidJavaObject joActivity = jcUnityPlayer.GetStatic<AndroidJavaObject> ("currentActivity")) {
// UIスレッドで実行する
joActivity.Call ("runOnUiThread", new AndroidJavaRunnable (RunOnUiThread));
}
} catch (System.Exception ex) {
Debug.LogError (ex.Message);
} finally {
AndroidJNI.PopLocalFrame (System.IntPtr.Zero);
}
#endif
}
/// <summary>
/// UIスレッドで実行する
/// </summary>
void RunOnUiThread ()
{
#if UNITY_ANDROID
// AndroidのActivity上で以下のコードを呼び出す
// getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
using (AndroidJavaClass jcUnityPlayer = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"))
using (AndroidJavaObject joActivity = jcUnityPlayer.GetStatic<AndroidJavaObject> ("currentActivity"))
using (AndroidJavaObject joWindow = joActivity.Call<AndroidJavaObject> ("getWindow")) {
joWindow.Call ("setSoftInputMode", 48);
}
#endif
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment