android 升级targetSdkVersion 27为问题总结

一、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);

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容