zhaozepeng/FloatWindowPermission

360手机开启权限问题

506967734 opened this issue · 12 comments

手机:8681-M02 系统:5.1
问题:点击去开启以后报错
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.settings/com.android.settings.Settings$OverlaySettingsActivity}; have you declared this activity in your AndroidManifest.xml?

at com.geely.g_assistant.utils.permission.rom.QikuUtils.applyPermission(QikuUtils.java:55)
at com.geely.g_assistant.utils.permission.FloatWindowManager$1.confirmResult(FloatWindowManager.java:133)
at com.geely.g_assistant.utils.permission.FloatWindowManager$6.onClick(FloatWindowManager.java:218)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:174)

你能把手机的悬浮窗设置页面用 adb shell dumpsys activity 发给我看一下么,这里我先用 try-catch 做一下兼容性处理

代码已经提交了,咱们两把你的机型适配好~

我这里也是监控到有报错信息,目前没有真机

image
这个是你需要的吗

是的,我等下把代码写一下,然后你验证一下看能否适配好这个手机

/**
 * 去360权限申请页面
 */
public static void applyPermission(Context context) {
    Intent intent = new Intent();
    intent.setClassName("com.android.settings", "com.android.settings.Settings$OverlaySettingsActivity");
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    if (isIntentAvailable(intent, context)) {
        context.startActivity(intent);
    } else {
        intent.setClassName("com.qihoo360.mobilesafe", "com.qihoo360.mobilesafe.ui.index.appEnterActivity");
        if (isIntentAvailable(intent, context)) {
            context.startActivity(intent);
        } else {
            Log.e(TAG, "can't open permission page with Settings$OverlaySettingsActivity, please use " +
                    "\"adb shell dumpsys activity\" command and tell me the name of the float window permission page");
        }
    }
}

private static boolean isIntentAvailable(Intent intent, Context context) {
    if (intent == null) {
        return false;
    }
    return context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size() > 0;
}

你试一下这段代码在你的手机上能否成功跳转

还是没有效果
image
can't open permission page with Settings$OverlaySettingsActivity, please use "adb shell dumpsys activity" command and tell me the name of the float window permission page
还是出现这样的问题

我在网上找了一圈的源码,找不到啊,唯一的方法就是去360里面的人,看能不能搞到代码,这个issue先挂着吧

@zhaozepeng 你的appEnterActivity第一个字母是大写吧
@506967734 改成大写的试试呢?

@czy1121 好吧,我的错,我的错,是大写,我不仔细了,
@506967734 你可以试试改成大写

改成大写,界面能跳转
image

@506967734 OK,我已经提交了代码上去