From 2b82cd974370d2d5ee9ccc6befa233290ccff85c Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期一, 21 十月 2019 11:29:24 +0800
Subject: [PATCH] update 安卓系统 10
---
Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/AppPermissionUtil.java | 38 +++++++
Project/ky_sdk/build.gradle | 4
Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/MainActivity.java | 9 +
Project/ky_sdk/src/game_ky/java/com/secondworld/univeralsdk/H2EngineSDK.java | 18 +++
Project/ky_sdk/src/main/AndroidManifest.xml | 8 +
Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/RequestPermissionsHelpActivity.java | 193 ++++++++++++++++++++++++++++++++++++++
6 files changed, 267 insertions(+), 3 deletions(-)
diff --git a/Project/ky_sdk/build.gradle b/Project/ky_sdk/build.gradle
index febd0b9..889851f 100644
--- a/Project/ky_sdk/build.gradle
+++ b/Project/ky_sdk/build.gradle
@@ -5,8 +5,8 @@
defaultConfig {
//applicationId "com.secondworld.univeralsdk"
- minSdkVersion 22
- targetSdkVersion 22
+ minSdkVersion 23
+ targetSdkVersion 23
versionCode 1
versionName "1.1.0"
}
diff --git a/Project/ky_sdk/src/game_ky/java/com/secondworld/univeralsdk/H2EngineSDK.java b/Project/ky_sdk/src/game_ky/java/com/secondworld/univeralsdk/H2EngineSDK.java
index 216df47..69323fd 100644
--- a/Project/ky_sdk/src/game_ky/java/com/secondworld/univeralsdk/H2EngineSDK.java
+++ b/Project/ky_sdk/src/game_ky/java/com/secondworld/univeralsdk/H2EngineSDK.java
@@ -1,5 +1,6 @@
package com.secondworld.univeralsdk;
+import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ClipData;
@@ -411,6 +412,23 @@
public static void onCreate(Activity activity, Bundle savedInstanceState)
{
+ AppPermissionUtil.requestPermissions(activity,
+ new String[]{
+ Manifest.permission.WRITE_EXTERNAL_STORAGE,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE,
+ Manifest.permission.RECORD_AUDIO,
+ Manifest.permission.READ_PHONE_STATE
+ },new AppPermissionUtil.OnPermissionListener() {
+ @Override
+ public void onPermissionGranted() {
+ //鎺堟潈
+ }
+
+ @Override
+ public void onPermissionDenied() {
+ //娌℃湁鎺堟潈锛屾垨鑰呮湁涓�涓潈闄愭病鏈夋巿鏉�
+ }
+ });
// ------------------------------- 鐚�砈DK -------------------------------
KYPlatformUtil.getInstance().init(activity);
diff --git a/Project/ky_sdk/src/main/AndroidManifest.xml b/Project/ky_sdk/src/main/AndroidManifest.xml
index 6937799..ea75678 100644
--- a/Project/ky_sdk/src/main/AndroidManifest.xml
+++ b/Project/ky_sdk/src/main/AndroidManifest.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.secondworld.univeralsdk"
+ xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto"
android:versionCode="1"
android:versionName="1.1.0">
@@ -71,6 +72,7 @@
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection"
android:label="@string/app_name"
android:launchMode="singleTask"
+ tools:replace="android:configChanges"
android:screenOrientation="sensorLandscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -171,6 +173,12 @@
</intent-filter>
</receiver>
+ <activity
+ android:name="com.secondworld.univeralsdk.RequestPermissionsHelpActivity"
+ android:configChanges="keyboardHidden|orientation|screenSize"
+ android:theme="@android:style/Theme.NoTitleBar">
+ </activity>
+
<!-- Required SDK鏍稿績鍔熻兘-->
<activity
android:name="cn.jpush.android.ui.PushActivity"
diff --git a/Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/AppPermissionUtil.java b/Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/AppPermissionUtil.java
new file mode 100644
index 0000000..3c73672
--- /dev/null
+++ b/Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/AppPermissionUtil.java
@@ -0,0 +1,38 @@
+package com.secondworld.univeralsdk;
+
+import android.content.Context;
+import android.os.Build;
+
+/**
+ * Created by Administrator on 2019/10/20 0020.
+ */
+
+public class AppPermissionUtil
+{
+ /**
+ * 鍘昏姹傛墍鏈夋潈闄�
+ * @param context
+ * @param permissions 闇�瑕佽姹傜殑鏉冮檺鍒楄〃
+ * @param listener 璇锋眰鏉冮檺鍥炶皟
+ */
+ public static void requestPermissions(Context context, String[] permissions, OnPermissionListener listener) {
+ if(context==null||listener==null){
+ throw new NullPointerException("context鍙傛暟涓虹┖锛屾垨鑰卨istener鍙傛暟涓虹┖");
+ }
+
+ if (Build.VERSION.SDK_INT <= 22) {
+ //SDK灏忎簬22涔嬪墠鐨勭増鏈箣鍓嶅彂杩斿洖鏉冮檺鍏佽
+ listener.onPermissionGranted();
+ } else {
+ //鎵撳紑涓�涓竴鍍忕礌鐨刟ctivity鍘昏姹傛潈闄愶紝骞跺洖璋冭繑鍥炵粨鏋�
+ RequestPermissionsHelpActivity.start(context,permissions,listener);
+ }
+ }
+
+ public interface OnPermissionListener {
+
+ void onPermissionGranted();//鎺堟潈
+
+ void onPermissionDenied();//鎷掔粷
+ }
+}
diff --git a/Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/MainActivity.java b/Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/MainActivity.java
index 50c4c25..a1a6fe3 100644
--- a/Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/MainActivity.java
+++ b/Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/MainActivity.java
@@ -10,13 +10,20 @@
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
{
@@ -215,6 +222,6 @@
{
KYPlatformUtil.getInstance().logout();
}
- return super.onKeyDown(i, keyEvent);
+ return false;
}
}
diff --git a/Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/RequestPermissionsHelpActivity.java b/Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/RequestPermissionsHelpActivity.java
new file mode 100644
index 0000000..6fb2089
--- /dev/null
+++ b/Project/ky_sdk/src/main/java/com/secondworld/univeralsdk/RequestPermissionsHelpActivity.java
@@ -0,0 +1,193 @@
+package com.secondworld.univeralsdk;
+
+import android.app.Activity;
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Build;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v4.content.ContextCompat;
+import android.view.Gravity;
+import android.view.Window;
+import android.view.WindowManager;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * Created by Administrator on 2019/10/20 0020.
+ */
+
+public class RequestPermissionsHelpActivity extends Activity
+{
+ private int requestCode;
+
+ //璁捐涓や釜OnPermissionListener鐨勫師鍥犳槸锛屾湁鏁堢紦瑙e苟鍙戣姹傛潈闄愭椂锛孫nPermissionListener鍏敤涓�涓細寮曞彂鍥炶皟閿欎贡鎴栨病娉曞洖璋冪殑闂
+ private static AppPermissionUtil.OnPermissionListener transferOnPermissionListener;//杩欎釜闈欐�佸彉閲忓厖褰撲竴涓紶閫掕�呯殑瑙掕壊,浼犻�掔粰mOnPermissionListener鍙橀噺鍚庯紝灏遍噴鏀惧紩鐢ㄤ簡
+
+ private AppPermissionUtil.OnPermissionListener mOnPermissionListener;//杩欎釜鎵嶆槸鎴戜滑姣忔鏉冮檺璇锋眰浣跨敤鐨勫洖璋冪洃鍚�
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ //1鍍忕礌鐨刟ctivity
+ Window window = getWindow();
+ window.setGravity(Gravity.LEFT | Gravity.TOP);
+ WindowManager.LayoutParams params = window.getAttributes();
+ params.x = 0;
+ params.y = 0;
+ params.height = 1;
+ params.width = 1;
+ window.setAttributes(params);
+
+ //鑾峰彇鐣岄潰浼犺繃鏉ョ殑鍊�
+ getIntentData();
+ }
+
+ private void getIntentData()
+ {
+ //鑾峰彇浼犻�掕繃鏉ュ洖璋冪洃鍚�
+ mOnPermissionListener = transferOnPermissionListener;
+ transferOnPermissionListener = null;
+ //浼犺繃鏉ョ殑闇�瑕佺敵璇风殑鏉冮檺
+ String[] permissions = getIntent().getStringArrayExtra("permissions");
+ if (permissions != null && permissions.length > 0)
+ {
+ requestPermissions(permissions);
+ }
+ else
+ {
+ //鎵嬪姩鎶ラ敊鎻愮ず
+ throw new NullPointerException("鐢宠鐨勬潈闄愬垪琛ㄤ笉鑳戒负绌猴紒");
+ }
+ }
+
+ /**
+ * 鍘荤敵璇锋墍鏈夋潈闄�
+ *
+ * @param permissions
+ */
+ @TargetApi(Build.VERSION_CODES.M)
+ private void requestPermissions(String[] permissions)
+ {
+ Random random = new Random();
+ requestCode = random.nextInt(1000);
+ List<String> deniedPermissions = getDeniedPermissions(permissions);
+ if (deniedPermissions.size() > 0)
+ {
+ //娌℃湁鎺堟潈杩囷紝鍘荤敵璇蜂竴涓�
+ requestPermissions(deniedPermissions.toArray(new String[deniedPermissions.size()]),
+ requestCode);
+ }
+ else
+ {
+ //閮藉凡缁忔巿鏉冭繃浜�
+ if (mOnPermissionListener != null)
+ {
+ mOnPermissionListener.onPermissionGranted();
+ }
+ if (!isFinishing())
+ {
+ finish();
+ }
+ }
+ }
+
+ /**
+ * 璇锋眰鏉冮檺缁撴灉
+ */
+ public void requestPermissionsResult(int requestCode, int[] grantResults)
+ {
+ if (requestCode != -1 && requestCode == requestCode)
+ {
+ if (verifyPermissions(grantResults))
+ {
+ //閮芥巿鏉冧簡
+ if (mOnPermissionListener != null)
+ {
+ mOnPermissionListener.onPermissionGranted();
+ }
+ finish();
+ }
+ else
+ {
+ //鏈変竴涓湭鎺堟潈鎴栬�呭涓湭鎺堟潈
+ if (mOnPermissionListener != null)
+ {
+ mOnPermissionListener.onPermissionDenied();
+ }
+ finish();
+ }
+ }
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
+ @NonNull int[] grantResults)
+ {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ //鐢宠鏉冮檺缁撴灉杩斿洖
+ requestPermissionsResult(requestCode, grantResults);
+ }
+
+ /**
+ * 鑾峰彇璇锋眰鏉冮檺涓渶瑕佹巿鏉冪殑鏉冮檺,鏈夌殑鍙兘宸茬粡鎺堟潈杩囦簡
+ */
+ private List<String> getDeniedPermissions(String[] permissions)
+ {
+ List<String> deniedPermissions = new ArrayList<>();
+ for (String permission : permissions)
+ {
+ if (ContextCompat.checkSelfPermission(this,
+ permission) == PackageManager.PERMISSION_DENIED)
+ {
+ deniedPermissions.add(permission);
+ }
+ }
+ return deniedPermissions;
+ }
+
+ /**
+ * 楠岃瘉鎵�鏈夋潈闄愭槸鍚﹂兘宸茬粡鎺堟潈
+ */
+ private static boolean verifyPermissions(int[] grantResults)
+ {
+ for (int grantResult : grantResults)
+ {
+ if (grantResult != PackageManager.PERMISSION_GRANTED)
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ protected void onDestroy()
+ {
+ super.onDestroy();
+ mOnPermissionListener = null;
+ }
+
+ /**
+ * 鍚姩activity锛屽苟甯︿簺蹇呰鍙傛暟杩囨潵
+ *
+ * @param context
+ * @param permissions 鐢宠鏉冮檺鍒楄〃
+ * @param listener 缁撴灉鍥炶皟
+ */
+ public static void start(Context context, String[] permissions,
+ AppPermissionUtil.OnPermissionListener listener)
+ {
+ Intent intent = new Intent(context, RequestPermissionsHelpActivity.class);
+ intent.putExtra("permissions", permissions);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(intent);
+
+ transferOnPermissionListener = listener;
+ }
+}
--
Gitblit v1.8.0