我已经使用 google play 完整性 API 发布了我的应用程序。设备完整性检查成功后应用程序可以运行
"deviceIntegrity": {
"deviceRecognitionVerdict": ["MEETS_BASIC_INTEGRITY", "MEETS_DEVICE_INTEGRITY"]
},
Run Code Online (Sandbox Code Playgroud)
我发现一些用户面临的问题是设备在安装时通过了设备完整性,但在重新启动设备后,设备完整性检查失败
这是我在重启后调试期间发现的响应
{
"requestDetails": {
"requestPackageName": "com.my.package",
"timestampMillis": "1674455009345",
"nonce": "Y29tLm1hbnRyYS5yZHNlcnZpY2UyMDIzMDEyMzExNTIzMjajHDrnJ9vtl2AfC1fUdEDJmD_HfvFtcpc\u003d"
},
"appIntegrity": {
"appRecognitionVerdict": "UNEVALUATED"
},
"deviceIntegrity": {
},
"accountDetails": {
"appLicensingVerdict": "UNEVALUATED"
}
}
Run Code Online (Sandbox Code Playgroud)
我搜索了未评估的结果
“没有评估应用程序完整性。错过了必要的要求,例如设备不够值得信赖。”
但只有重新启动 Android 设备后才会出现此问题
我希望有人可以帮助我们解决这个问题。
我正在使用MediaProjection录制我的屏幕,如下所示
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
displayWidth = size.x;
displayHeight = size.y;
imageReader = ImageReader.newInstance(displayWidth, displayHeight, ImageFormat.JPEG, 5);
int flags = DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY | DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC;
DisplayMetrics metrics = getResources().getDisplayMetrics();
int density = metrics.densityDpi;
mediaProjection.createVirtualDisplay("test", displayWidth, displayHeight, density, flags,
imageReader.getSurface(), null, projectionHandler);
Image image = imageReader.acquireLatestImage();
byte[] data = getDataFromImage(image);
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
Run Code Online (Sandbox Code Playgroud)
问题是捕获的图像包含如下图像的黑框.
编辑
上述问题可以通过位图操作来解决.
不过,我现在正在寻找可以应用到解决方案MediaProjection或SurfaceView中ImageReader实现设备记录.
我想获得当前设备支持的显示颜色
示例
google_pixel:16M颜色
samsung_c3300k_champ:256K颜色
注意:例如,从设备规范站点检索的上述值
另外,我得到的值基于显示位,例如:设备支持24位然后2 ^ 24 = 16,777,216
但是如何获得未知的当前显示位
我正在使用 USB 设备连接,在某些设备(如Oppo F1s)中,OTG 连接已从设置中禁用。检查下面的屏幕截图作为参考
我想知道:
1)如何检查OTG连接是否启用
2)如何使用intent打开OTG连接设置页面