一、Only fullscreen opaque activities can request orientation(只有占据整个屏幕的 Activity 才可以设置横竖屏,半透明/对话框等不可设置横竖屏)
错误提示解决办法:
把 AndroidManifest.xml 中注册的 Activity 均去掉该属性android:screenOrientation="portrait";
添加了一个 values-26 的文件夹,存放针对 Android8.0 以上手机的 style.xml,将 android:windowIsTranslucent 改为 false
<item name="android:windowIsTranslucent">false</item> 并加入
<item name="android:windowDisablePreview">true</item>
如下:
values-26.png
@style/AnimationThemeEpagerfalsetruefalsefalsetruefalsetrue
以上,就解决掉进入程序闪退,和横竖屏正常切换的问题了。但是如果有需求固定横屏或竖屏呢,很简单,在 Java/Kotlin 代码的 onCreate 中设置setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
即可,亲测可用。
二、部分权限默认关闭,系统未给出询问窗口(参考链接:https://blog.csdn.net/zimo2013/article/details/50478201)
if(ContextCompat.checkSelfPermission(mContexts, "需要检查的权限") ==
PackageManager.PERMISSION_DENIED){
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_WIFI_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA}, 0);
}
网友评论