悬浮窗权限申请具体

悬浮窗权限代码:

在manifest中需要添加申请:

   <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

直接进行代码的申请:

private void requestAlertWindowPermission() {
    
    
			try {
    
    
				ToofifiLog.t(TAG, "requestAlertWindowPermission()");
				Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
				intent.setData(Uri.parse("package:" + getPackageName()));
				startActivityForResult(intent, 1001);
			} catch (Exception e) {
    
    
				ToofifiLog.t(TAG, "requestAlertWindowPermission() failed, e=" + e.toString());
				e.printStackTrace();
			}
		}

	@Override
	public void onActivityResult(int requestCode, int resultCode, Intent data) {
    
    
		super.onActivityResult(requestCode, resultCode, data);

		if (requestCode == 1001) {
    
    
			if (0 == ClientConfig.checkHasCanDrawOverlaysPermission()) {
    
    
				int callCode = FtsdkApiProxy.getInstance().startCanDrawOverlaysServices();
				mCheckBox.setChecked(true);
				showText("启动需要悬浮权限的服务:" + (callCode == 0 ? "启动成功" : "启动失败, callCode=" + callCode));
			} else {
    
    
				mCheckBox.setChecked(false);
				showText("启动需要悬浮权限的服务:启动失败, 没权限");
			}
		}
	}

对于在manifest文件中的权限申请需要根据api的版本判断是否添加权限申请。从API级别23开始,除非声明Manifest.permission,否则应用程序不能在其他应用程序之上绘制。SYSTEM_ALERT_WINDOW权限在其清单中,并且用户明确授予应用程序此功能。要提示用户授予此批准,应用程序必须发送带有操作action_MANAGE_OVERLAY_PERMISSION的意图,这会导致系统显示权限管理屏幕

猜你喜欢

转载自blog.csdn.net/qq_51108920/article/details/126543253