Android锁屏下显示来电通知界面

Android锁屏下显示来电通知界面


2023年12月9日发(作者:戴尔电脑官网首页)

Android锁屏下显示来电通知界面

1. 新建Activity,并在activity的onCreate()方法中设置flags

@Override

protected void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

getWindow().addFlags(_DISMISS_KEYGUARD //解锁

| _KEEP_SCREEN_ON //保持屏幕不息屏

| _TURN_SCREEN_ON);//点亮屏幕

if (_INT > 27) {

setShowWhenLocked(true);

} else {

getWindow().addFlags(_SHOW_WHEN_LOCKED);

}

Params params = getWindow().getAttributes();

//低调模式, 会隐藏不重要的状态栏图标,/QQsongQQ/article/details/89312763

UiVisibility = _UI_FLAG_LOW_PROFILE;

getWindow().setAttributes(params);

setContentView(ty_call);

}

2. 在中配置activity,并加入锁屏显示权限

android:screenOrientation="portrait"

android:launchMode="singleInstance"/>

3. 启动Activity

wakeUpAndUnlock(getApplicationContext());

startActivity(new Intent(getApplication(), ).addFlags(_ACTIVITY_NEW_TASK | _ACTIVITY_CLEAR_TOP));

public void wakeUpAndUnlock(Context context) {

//屏锁管理器

KeyguardManager km = (KeyguardManager) temService(RD_SERVICE);

rdLock kl = guardLock("unLock");

//解锁

eKeyguard();

//获取电源管理器对象

PowerManager pm = (PowerManager) temService(_SERVICE);

//获取ck对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag

ck wl = eLock(E_CAUSES_WAKEUP | _DIM_WAKE_LOCK,

//点亮屏幕

e();

//释放

e();

}

注意:覆盖锁屏显示这个功能在某些手机上需要“锁屏显示”权限,目前只能用户自己开启,无法通过代码申请。

附上国内各大厂商跳转到权限的代码

public class PermissionUtil {

/**

/**

* CTURER判断各大手机厂商品牌

*/

private static final String MANUFACTURER_HUAWEI = "Huawei";//华为

private static final String MANUFACTURER_MEIZU = "Meizu";//魅族

private static final String MANUFACTURER_XIAOMI = "Xiaomi";//小米

private static final String MANUFACTURER_SONY = "Sony";//索尼

private static final String MANUFACTURER_OPPO = "OPPO";

private static final String MANUFACTURER_LG = "LG";

private static final String MANUFACTURER_VIVO = "vivo";

private static final String MANUFACTURER_SAMSUNG = "samsung";//三星

private static final String MANUFACTURER_LETV = "Letv";//乐视

private static final String MANUFACTURER_ZTE = "ZTE";//中兴

private static final String MANUFACTURER_YULONG = "YuLong";//酷派

private static final String MANUFACTURER_LENOVO = "LENOVO";//联想

public static boolean isAppSettingOpen = false;

public static final int PERMISSION_SETTING_FOR_RESULT = 0x100;

/**

* 跳转到相应品牌手机系统权限设置页,如果跳转不成功,则跳转到应用详情页

* 这里需要改造成返回true或者false,应用详情页:true,应用权限页:false

*

* @param activity

*/

public static void GoToSetting(Activity activity) {

switch (CTURER) {

case MANUFACTURER_HUAWEI://华为

Huawei(activity);

break;

case MANUFACTURER_MEIZU://魅族

Meizu(activity);

break;

case MANUFACTURER_XIAOMI://小米

Xiaomi(activity);

break;

case MANUFACTURER_SONY://索尼

Sony(activity);

break;

case MANUFACTURER_OPPO://oppo

OPPO(activity);

break;

case MANUFACTURER_LG://lg

LG(activity);

break;

case MANUFACTURER_LETV://乐视

Letv(activity);

break;

default://其他

try {//防止应用详情页也找不到,捕获异常后跳转到设置,这里跳转最好是两级,太多用户也会觉得麻烦,还不如不跳

openAppDetailSetting(activity);

} catch (Exception e) {

SystemConfig(activity);

}

break;

}

}

/**

* 华为跳转权限设置页

*

* @param activity

*/

public static void Huawei(Activity activity) {

try {

Intent intent = new Intent();

gs(_ACTIVITY_NEW_TASK);

ra("packageName", ATION_ID);

ComponentName comp = new ComponentName("manager", "tivity");

ponent(comp);

ctivityForResult(intent, PERMISSION_SETTING_FOR_RESULT);

isAppSettingOpen = false;

} catch (Exception e) {

} catch (Exception e) {

openAppDetailSetting(activity);

}

}

/**

* 魅族跳转权限设置页,测试时,点击无反应,具体原因不明

*

* @param activity

*/

public static void Meizu(Activity activity) {

try {

Intent intent = new Intent("_APPSEC");

egory(RY_DEFAULT);

ra("packageName", ATION_ID);

ctivity(intent);

isAppSettingOpen = false;

} catch (Exception e) {

openAppDetailSetting(activity);

}

}

/**

* 小米,功能正常

*

* @param activity

*/

public static void Xiaomi(Activity activity) {

try { // MIUI 8 9

Intent localIntent = new Intent("_PERM_EDITOR");

ssName("tycenter", "sionsEditorActivity");

ra("extra_pkgname", kageName());

ctivityForResult(localIntent, PERMISSION_SETTING_FOR_RESULT);

isAppSettingOpen = false;

} catch (Exception e) {

try { // MIUI 5/6/7

Intent localIntent = new Intent("_PERM_EDITOR");

ssName("tycenter", "missionsEditorActivity");

ra("extra_pkgname", kageName());

ctivityForResult(localIntent, PERMISSION_SETTING_FOR_RESULT);

isAppSettingOpen = false;

} catch (Exception e1) { // 否则跳转到应用详情

openAppDetailSetting(activity);

}

}

}

/**

* 索尼,6.0以上的手机非常少,基本没看见

*/

public static void Sony(Activity activity) {

try {

Intent intent = new Intent();

gs(_ACTIVITY_NEW_TASK);

ra("packageName", ATION_ID);

ComponentName comp = new ComponentName("", "AMainActivity");

ponent(comp);

ctivity(intent);

isAppSettingOpen = false;

} catch (Exception e) {

openAppDetailSetting(activity);

}

}

/**

* OPPO

* @param activity

*/

public static void OPPO(Activity activity) {

try {

Intent intent = new Intent();

gs(_ACTIVITY_NEW_TASK);

ra("packageName", ATION_ID);

ComponentName comp = new ComponentName("nter", "sionManagerActivity");

ComponentName comp = new ComponentName("nter", "sionManagerActivity");

ponent(comp);

ctivity(intent);

isAppSettingOpen = false;

} catch (Exception e) {

openAppDetailSetting(activity);

}

}

/**

* LG经过测试,正常使用

*

* @param activity

*/

public static void LG(Activity activity) {

try {

Intent intent = new Intent("");

gs(_ACTIVITY_NEW_TASK);

ra("packageName", ATION_ID);

ComponentName comp = new ComponentName("gs", "gs$AccessLockSummaryActivity");

ponent(comp);

ctivity(intent);

isAppSettingOpen = false;

} catch (Exception e) {

openAppDetailSetting(activity);

}

}

/**

* 乐视6.0以上很少,基本都可以忽略了,现在乐视手机不多

* @param activity

*/

public static void Letv(Activity activity) {

try {

Intent intent = new Intent();

gs(_ACTIVITY_NEW_TASK);

ra("packageName", ATION_ID);

ComponentName comp = new ComponentName("fe", "sionAndApps");

ponent(comp);

ctivity(intent);

isAppSettingOpen = false;

} catch (Exception e) {

openAppDetailSetting(activity);

}

}

/**

* 只能打开到自带安全软件

* @param activity

*/

public static void _360(Activity activity) {

try {

Intent intent = new Intent("");

gs(_ACTIVITY_NEW_TASK);

ra("packageName", ATION_ID);

ComponentName comp = new ComponentName("safe", "erActivity");

ponent(comp);

ctivity(intent);

} catch (Exception e) {

openAppDetailSetting(activity);

}

}

/**

* 系统设置界面

* @param activity

*/

public static void SystemConfig(Activity activity) {

Intent intent = new Intent(_SETTINGS);

ctivity(intent);

}

/**

* 获取应用详情页面

* 获取应用详情页面

* @return

*/

private static Intent getAppDetailSettingIntent(Activity activity) {

Intent localIntent = new Intent();

gs(_ACTIVITY_NEW_TASK);

ion("ATION_DETAILS_SETTINGS");

a(rts("package", kageName(), null));

return localIntent;

}

public static void openAppDetailSetting(Activity activity) {

ctivityForResult(getAppDetailSettingIntent(activity), PERMISSION_SETTING_FOR_RESULT);

isAppSettingOpen = true;

}

}


发布者:admin,转转请注明出处:http://www.yc00.com/num/1702110797a1176669.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信