当用户在手机上安装应用程序时,他/她需要授予 MediaProjection 系统服务权限才能启动屏幕截图功能。每当用户重新启动手机时,用户每次都需要手动授予 MediaProjection 服务权限。我想做这样,当应用程序安装在移动设备上时,用户只需要授予一次 MediaProjection 权限,这样用户就不需要每次启动移动设备时都分配权限。
另一个问题是一段时间后 MediaProjection 服务会自动/随机停止。
此代码在我们手动启用权限时启动 MediaProjection 系统服务权限:
MediaProjectionManager projectionManager = (MediaProjectionManager)
_context.getSystemService(MEDIA_PROJECTION_SERVICE);
intent = projectionManager.createScreenCaptureIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
((Activity)_context).startActivityForResult(intent,REQUEST_SCREENSHOT);
此代码在移动设备重新启动时启动服务类。因此,当服务启动时,它不会自动设置 MediaProjection 权限。
Intent myIntent = new Intent(context, ScreentshotService.class);
myIntent.setAction(Intent.ACTION_BOOT_COMPLETED);
myIntent.putExtra("code", code);
myIntent.putExtra("data",intent1);
context.startService(myIntent);
我在使用上面的代码重新启动后调用这个Service.class但它没有启动MediaProjection Service。