How to overlay views in other apps

后端 未结 2 1872
谎友^
谎友^ 2020-12-14 17:30

Where do I start?

I don\'t know what functions or permissions will I use to make this. No root required.

The view look like this, the camera button on the ri

2条回答
  •  半阙折子戏
    2020-12-14 18:29

    Try this:

        if(!isSystemAlertPermissionGranted(MainActivity.this)){
            requestSystemAlertPermission(MainActivity.this,1);
        }
    
        startService(new Intent(getApplicationContext(), Overlay.class));
    

    And:

    public static void requestSystemAlertPermission(Activity context, int requestCode) {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
            return;
        final String packageName = context == null ? context.getPackageName() : context.getPackageName();
        final Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + packageName));
        if (context != null)
            context.startActivityForResult(intent, requestCode);
        else
            context.startActivityForResult(intent, requestCode);
    }
    @TargetApi(23)
    public static boolean isSystemAlertPermissionGranted(Context context) {
        final boolean result = Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP || Settings.canDrawOverlays(context);
        return result;
    }
    

提交回复
热议问题