更改联想PAD启动小智语音的时机

This commit is contained in:
董宏宇
2021-07-24 00:50:44 +08:00
committed by zhongchao
parent eaf0700cb8
commit 674c420771
6 changed files with 117 additions and 55 deletions

View File

@@ -5,6 +5,7 @@ import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
@@ -18,6 +19,8 @@ import androidx.appcompat.app.AppCompatDelegate;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.skin.support.MogoSkinManager;
import com.mogo.utils.SoftKeyBoardJobber;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.permissions.PermissionsDialogUtils;
/**
* @author congtaowang
@@ -28,6 +31,8 @@ import com.mogo.utils.SoftKeyBoardJobber;
public abstract class MvpActivity< V extends IView, P extends Presenter< V > >
extends AppCompatActivity implements IView {
protected static final String TAG = "MvpActivity";
protected P mPresenter;
@Override
@@ -42,21 +47,30 @@ public abstract class MvpActivity< V extends IView, P extends Presenter< V > >
initViews();
mPresenter = createPresenter();
getLifecycle().addObserver( mPresenter );
//申请悬浮窗权限
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// 检查是否有悬浮窗权限
if (Settings.canDrawOverlays(this)) {
startVoicePad();
}
} else {
startVoicePad();
}
}
@Override
protected void onResume() {
super.onResume();
hideBottomUIMenu();
startVoicePad();
}
/**
* 在Pad上拉起语音
*/
private void startVoicePad() {
public void startVoicePad() {
try {
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) {
Logger.d(TAG, "启动小智语音");
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.zhidao.speech",
"com.zhidao.speech.MainActivity"));

View File

@@ -0,0 +1,59 @@
package com.mogo.utils.permissions;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import android.text.TextUtils;
/**
* @author xiaoyuzhou
* @date 2021/7/22 4:57 下午
*/
public class PermissionsDialogUtils {
public static AlertDialog mAlertDialog;
/**
* 打开APP的详情设置
*/
public static void openAppDetails(Activity activity, String msg, int CODE_WINDOW) {
if (mAlertDialog == null || !mAlertDialog.isShowing()) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
if (TextUtils.isEmpty(msg)) {
builder.setMessage("请在 “应用信息 -> 权限” 中授予权限");
} else {
builder.setMessage("请在 “应用信息 -> 权限” 中授予【" + msg + "】权限");
}
builder.setPositiveButton("手动授权", (dialog, which) -> {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setData(Uri.parse("package:" + activity.getPackageName()));
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
activity.startActivityForResult(intent, CODE_WINDOW);
});
builder.setCancelable(false);
mAlertDialog = builder.show();
}
}
/**
* 跳转浮层权限获取页面
*
* @param activity
* @param CODE_WINDOW
*/
public static void openOverlayPermission(Activity activity, int CODE_WINDOW) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
activity.startActivityForResult(new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + activity.getPackageName())), CODE_WINDOW);
}
}
}