当前位置: 首页 > 知识库问答 >
问题:

检测到屏幕覆盖Android

季小云
2023-03-14

我发现下面的问题屏幕覆盖检测时,在Motog3Marshmallow移动点击权限。

我在到处的互联网搜索中找到了许多解决方案,您可以查看以下内容:

>

  • 删除esfile资源管理器

    https://www.youtube.com/watch?v=QHidevTDrYI

    检测到屏幕覆盖阻止Android权限

    https://android.stackexchange.com/questions/148260/screen-overlay-detected-what-is-the-problem

    https://forums.androidcentral.com/android-6-0-marshmallow/682802-screen-overlay-detected-what-can-i-do.html

    https://www.howtogeek.com/271519/how-to-fix-the-screen-overlay-detected-error-on-android/

    https://github.com/MohammadAdib/Roundr/issues/10

    等等。更多。

    如果我不在下面调用权限,那么没问题。

    因此,如果有人想给出最好的解决方案,请分享。

    请在重复之前提及它,我想要适当的解决方案。

    随时询问我也分享一些代码的任何信息或代码。

    清单:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.psm">
    <!---->
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/logo"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/MyMaterialTheme">
            <activity android:name=".MainActivity"
                android:screenOrientation="portrait">
    
            </activity>
            <activity android:name=".SplashScreen"
                android:screenOrientation="portrait">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name="com.nippon.registration.Registration"
               ></activity>
        </application>
    
    </manifest>
    

    Mainactivity中的权限代码。Java语言

    checkAndRequestPermissions(); //called in oncreate() of activity
    
    
       private boolean checkAndRequestPermissions() {
            try {
                int permissionWriteEXTERNALSTORAGE = ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
                int PermissionCamera = ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA);
    
    
                List<String> listPermissionsNeeded = new ArrayList<>();
    
                if (permissionWriteEXTERNALSTORAGE != PackageManager.PERMISSION_GRANTED) {
                    listPermissionsNeeded.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
                }
                if (PermissionCamera != PackageManager.PERMISSION_GRANTED) {
                    listPermissionsNeeded.add(android.Manifest.permission.CAMERA);
                }
                if (!listPermissionsNeeded.isEmpty()) {
                    ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), 1);
                    return false;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return true;
        }
    

    提前感谢,完美的解决方案。

  • 共有1个答案

    通寂离
    2023-03-14

    最后,我通过删除下面的代码来解决上面的屏幕覆盖检测问题,我在应用程序中使用这些代码来测试内存使用情况:

    final Runtime runtime = Runtime.getRuntime();
            final long usedMemInMB=(runtime.totalMemory() - runtime.freeMemory()) / 1048576L;
            final long maxHeapSizeInMB=runtime.maxMemory() / 1048576L;
            final long availHeapSizeInMB = maxHeapSizeInMB - usedMemInMB;
            Toast.makeText(getApplicationContext(),String.valueOf(usedMemInMB+"  "+ maxHeapSizeInMB+" "+ availHeapSizeInMB), Toast.LENGTH_LONG).show();
    

    感谢大家的支持!

     类似资料:
    • 运行我的android应用程序时出现以下错误: 检测到屏幕覆盖: 要更改此权限设置,您首先必须从设置中关闭屏幕覆盖 我的应用程序没有列在显示的列表中。 如何解决这个错误?

    • 我注意到我的新手机上的Android应用程序有一个奇怪的问题。SDK 23权限弹出窗口(如外部存储)被下面的附加警报阻止。我最初以为这与我的手机有关,但它似乎不影响我安装的任何其他应用程序。 这个问题可能与安装了调试版本有关,还是我的权限处理有问题?我以为它可能与我正在使用的广告平台之一有关,但我尝试禁用它们,它仍然出现 我已经粘贴了下面生成此权限请求的图像保存功能。我正在使用Dexter来节省编

    • 我创建了一个应用程序,它在后台连续运行,并显示浮动覆盖文本视图(通过使用权限android.permission.SYSTEM_ALERT_WINDOW)。 我在联想Android设备中遇到问题,当其他应用程序尝试请求用户权限时,会出现一个警报对话框,显示“检测到屏幕覆盖”。虽然我在Redmi 3S Prime设备上测试了同一应用程序,但权限对话框中的“允许”按钮是不可单击的,直到我关闭了应用程序

    • 在我的应用程序中,我请求获得在Android SDK 23中访问SMS的权限(运行时权限),但问题是出现了对话框屏幕覆盖,并且未授予访问权限。我禁用了所有其他应用程序覆盖,但没有任何更改。我找到了这个链接,但没有帮助 问题是我如何通过编程修复它?

    • 我的问题类似于Android的“屏幕覆盖检测”消息,如果用户试图在显示通知时授予权限 但下面列出的解决方案都不适用于我,我禁用了所有其他访问overlay的应用程序,但仍然没有对相同错误的积极响应。 我该怎么做才能解决这个问题。 这是我的开发应用程序错误还是android系统误差?或任何其他?

    • 如果用户在显示通知时试图授予权限,我已经阅读了Android“Screen Overlay Detected”(屏幕覆盖检测)消息,我可以用这句话作为开场白,我完全理解覆盖问题是什么。 我还了解如何请求它,以及如何检查我当前正在运行的应用程序是否有权绘制覆盖(! Settings.canDrawOverlays(this))。 我因为我的应用程序而被责骂,因为每次权限请求弹出时,就会显示覆盖弹出窗