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.Handler;
|
import android.os.Message;
|
import android.os.Process;
|
import android.provider.Settings;
|
import android.support.v4.content.PermissionChecker;
|
import android.util.Log;
|
import android.view.KeyEvent;
|
import android.view.View;
|
import android.widget.Button;
|
import android.widget.FrameLayout;
|
import android.widget.GridLayout;
|
import android.widget.RelativeLayout;
|
|
import com.snowfish.cn.ganga.helper.SFOnlineExitListener;
|
import com.snowfish.cn.ganga.helper.SFOnlineHelper;
|
import com.unity3d.player.UnityPlayerActivity;
|
|
import java.util.HashMap;
|
|
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;
|
|
public static final int SHOW_TENCENT_LOGIN = 0;
|
public static final int HIDE_TENCENT_LOGIN = 1;
|
|
private RelativeLayout m_MainContainer;
|
private int mType;
|
private boolean isNotch = false;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState)
|
{
|
// sInstance = this;
|
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)
|
{
|
SFOnlineHelper.exit(this, new SFOnlineExitListener()
|
{
|
/* onSDKExit
|
* @description 当SDK有退出方法及界面,回调该函数
|
* @param bool 是否退出标志位
|
*/
|
@Override
|
public void onSDKExit(boolean bool)
|
{
|
if (bool)
|
{
|
//apk退出函数,demo中也有使用System.exit()方法;但请注意360SDK的退出使用exit()会导致游戏退出异常
|
finish();
|
}
|
}
|
|
/* onNoExiterProvide
|
* @description SDK没有退出方法及界面,回调该函数,可在此使用游戏退出界面
|
*/
|
@Override
|
public void onNoExiterProvide()
|
{
|
LogUtil.i(TAG, "SDK不支持, 主动调用游戏中...");
|
HashMap<String, Object> m_Message = new HashMap<>();
|
m_Message.put("code", CodeA2U.ExitGame);
|
UniversalUtil.sendMessageToUnity(m_Message);
|
}
|
});
|
}
|
return super.onKeyDown(i, keyEvent);
|
}
|
}
|