从权限跳转看Activity的data android:scheme

在应用申请悬浮窗权限的时候,可以跳转到相应的设置界面,并且自动切换到应用的条目,高亮显示一下,

android悬浮窗权限怎么申请

在Android中,要申请悬浮窗权限,需要以下步骤:

  1. 在 AndroidManifest.xml 文件中添加权限声明。在 <manifest> 标签内部添加以下代码:

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
  2. 在你的应用程序中请求悬浮窗权限。可以通过以下代码在你的 Activity 或者 Fragment 中请求权限:

java

复制

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !Settings.canDrawOverlays(this)) {
    Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                               Uri.parse("package:" + getPackageName()));
    startActivityForResult(intent, REQUEST_CODE);
}

上述代码会打开一个系统设置界面,允许用户授予悬浮窗权限。

而申请通知访问权限时,在跳转的页面中没有高亮显示应用的条目,为什么呢,

因为OverlaySettingsActivity 中设置了 <data android:scheme="package" />

XML 复制代码
packages/apps/Settings/AndroidManifest.xml


<activity 
android:name="Settings$OverlaySettingsActivity" 
android:exported="true" 
android:label="@string/draw_overlay"> 
<intent-filter android:priority="1"> 
<action android:name="android.settings.action.MANAGE_OVERLAY_PERMISSION" /> 
<category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 
<intent-filter android:priority="1"> 
<action android:name="android.settings.action.MANAGE_OVERLAY_PERMISSION" /> 
<category android:name="android.intent.category.DEFAULT" /> 
<data android:scheme="package" /> 
</intent-filter> 
<meta-data android:name="com.android.settings.FRAGMENT_CLASS" 
android:value="com.android.settings.applications.manageapplications.ManageApplications" /> 
<meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" 
android:value="@string/menu_key_apps"/> 
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" 
android:value="true" /> 
</activity>



<activity 
android:name="Settings$NotificationAssistantSettingsActivity" 
android:exported="true" 
android:label="@string/notification_assistant_title"> 
<intent-filter android:priority="1"> 
<action android:name="android.settings.NOTIFICATION_ASSISTANT_SETTINGS" /> 
<category android:name="android.intent.category.BROWSABLE" /> 
<category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 
<meta-data android:name="com.android.settings.FRAGMENT_CLASS" 
android:value="com.android.settings.notification.ConfigureNotificationSettings" /> 
<meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" 
android:value="@string/menu_key_notifications"/> 
</activity>

附:

android中怎么跳转到NotificationAssistantSettingsActivity

在Android中,没有名为 NotificationAssistantSettingsActivity 的标准活动或类。如果你希望跳转到通知助手设置界面,可以使用以下代码:

Intent intent = new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS);

startActivity(intent);

上述代码将打开通知访问权限设置界面,其中用户可以配置通知助手相关的权限。

请注意,根据不同的Android版本和设备制造商,界面的外观和可用选项可能会有所不同。确保你的应用程序具有适当的权限,以请求用户打开通知助手设置界面。

相关推荐
长亭外的少年2 小时前
Kotlin 编译失败问题及解决方案:从守护进程到 Gradle 配置
android·开发语言·kotlin
建群新人小猿5 小时前
会员等级经验问题
android·开发语言·前端·javascript·php
1024小神6 小时前
tauri2.0版本开发苹果ios和安卓android应用,环境搭建和最后编译为apk
android·ios·tauri
兰琛6 小时前
20241121 android中树结构列表(使用recyclerView实现)
android·gitee
Y多了个想法7 小时前
RK3568 android11 适配敦泰触摸屏 FocalTech-ft5526
android·rk3568·触摸屏·tp·敦泰·focaltech·ft5526
NotesChapter8 小时前
Android吸顶效果,并有着ViewPager左右切换
android
_祝你今天愉快9 小时前
分析android :The binary version of its metadata is 1.8.0, expected version is 1.5.
android
暮志未晚Webgl9 小时前
109. UE5 GAS RPG 实现检查点的存档功能
android·java·ue5
麦田里的守望者江10 小时前
KMP 中的 expect 和 actual 声明
android·ios·kotlin
Dnelic-10 小时前
解决 Android 单元测试 No tests found for given includes:
android·junit·单元测试·问题记录·自学笔记