package com.secondworld.univeralsdk; import android.Manifest; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Configuration; import android.net.Uri; import android.os.Bundle; import android.os.Process; import android.provider.Settings; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v4.content.PermissionChecker; import android.util.Log; import android.view.View; import android.widget.FrameLayout; import android.widget.RelativeLayout; import android.view.KeyEvent; import com.unity3d.player.UnityPlayerActivity; import java.util.ArrayList; import java.util.List; public class MainActivity extends UnityPlayerActivity { private static final String TAG = "MainActivity"; public static boolean isForeground = false; // 启用6.0以上权限回调code // private static final int CODE_REQUEST_PERMISSION = 1000; private RelativeLayout m_MainContainer; private int mType; private boolean isNotch = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LogUtil.i(TAG, "onCreate"); LogUtil.init(this, true); setContentView(R.layout.activity_main); m_MainContainer = (RelativeLayout) findViewById(R.id.main_container); String _brand = NotchPhoneUtil.getDeviceBrand(); if (_brand.toUpperCase().contains("VIVO")) { isNotch = NotchPhoneUtil.HasNotchVivo(MainActivity.this); mType = 1; } else if (_brand.toUpperCase().contains("HUAWEI") || _brand.toUpperCase().contains("HONOR")) { // isNotch = NotchPhoneUtil.hasNotchAtHuawei(this);; // mType = 2; } else if (_brand.toUpperCase().contains("OPPO")) { isNotch = NotchPhoneUtil.HasNotchOPPO(MainActivity.this); mType = 3; } else if (_brand.toUpperCase().contains("XIAOMI")) { isNotch = NotchPhoneUtil.HasNotchXiaoMi(); mType = 4; } NotchPhoneUtil.onConfigurationChanged(this, isNotch, mType, m_MainContainer); FrameLayout _frameLayout = (FrameLayout) findViewById(R.id.unity_view); View unityView = mUnityPlayer.getView(); _frameLayout.addView(unityView); H2EngineSDK.onCreate(this, savedInstanceState); } @Override public void onWindowFocusChanged(boolean b) { LogUtil.i(TAG, "onWindowFocusChanged: " + b); super.onWindowFocusChanged(b); H2EngineSDK.onWindowFocusChanged(b); } @Override protected void onNewIntent(Intent intent) { LogUtil.i(TAG, "onNewIntent"); super.onNewIntent(intent); H2EngineSDK.onNewIntent(this, intent); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { LogUtil.i(TAG, "onActivityResult"); H2EngineSDK.onActivityResult(requestCode, resultCode, data, this); super.onActivityResult(requestCode, resultCode, data); } @Override public void onConfigurationChanged(Configuration newConfig) { LogUtil.i(TAG, "onConfigurationChanged"); NotchPhoneUtil.onConfigurationChanged(this, isNotch, mType, m_MainContainer); H2EngineSDK.onConfigurationChanged(newConfig); super.onConfigurationChanged(newConfig); } @Override protected void onStart() { LogUtil.i(TAG, "onStart"); H2EngineSDK.onStart(this); super.onStart(); } @Override protected void onStop() { LogUtil.i(TAG, "onStop"); isForeground = false; H2EngineSDK.onStop(this); super.onStop(); } @Override protected void onResume() { LogUtil.i(TAG, "onResume"); isForeground = true; H2EngineSDK.onResume(this); super.onResume(); // // 检测本地存储权限是否有, 没有的话要提示用户 // if (PermissionChecker.checkPermission(this, // Manifest.permission.WRITE_EXTERNAL_STORAGE, // Process.myPid(), Process.myUid(), // getPackageName()) != PackageManager.PERMISSION_GRANTED // || PermissionChecker.checkPermission(this, // Manifest.permission.READ_EXTERNAL_STORAGE, // Process.myPid(), Process.myUid(), // getPackageName()) != PackageManager.PERMISSION_GRANTED) // { // new AlertDialog.Builder(this) // .setMessage("应用没有存储读取权限,点击确定至设置中开启,否则无法继续游戏.") // .setCancelable(false) // .setPositiveButton("确定", // new DialogInterface.OnClickListener() // { // @Override // public void onClick(DialogInterface dialogInterface, // int i) // { // UniversalUtil.hasGoToSetting = true; // Intent intent = new Intent( // Settings.ACTION_APPLICATION_DETAILS_SETTINGS); // intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // Uri uri = Uri.fromParts("package", // getPackageName(), // null); // intent.setData(uri); // startActivity(intent); // } // }) // .setNegativeButton("拒绝", // new DialogInterface.OnClickListener() // { // @Override // public void onClick(DialogInterface dialogInterface, // int i) // { // finish(); // } // }) // .show(); // } } @Override protected void onPause() { LogUtil.i(TAG, "onPause"); H2EngineSDK.onPause(this); super.onPause(); } @Override protected void onDestroy() { LogUtil.i(TAG, "onDestroy"); H2EngineSDK.onDestroy(this); super.onDestroy(); } @Override protected void onRestart() { LogUtil.i(TAG, "onRestart"); H2EngineSDK.onRestart(this); super.onRestart(); } @Override public boolean onKeyDown(int i, KeyEvent keyEvent) { if (i == KeyEvent.KEYCODE_BACK) { KYPlatformUtil.getInstance().logout(); } return false; } }