短视频源码技术开发知识:如果固定手机方向
在短视频平台源码在开发的过程中,实现倒计时、定时任务是一个很常见的功能,倒计时可用于实现开屏广告倒计时,验证码倒计时等诸多功能,定位任务可用于定时刷新等功能,以下就是短视频平台源码开发中实现倒计时,定时任务的功能示例。
1、短视频源码开发中使用场景
在某些情况下,没有对Android应用设置横屏竖屏,而Android手机一般随着陀螺仪加速器的方向进行旋转,假设我的手机是横向放置的,但是我又要求纵向显示。或者我的手机是纵向放置的,但是我又要求横向显示的时候,就会有挺麻烦的问题。
2、短视频源码开发中ADB方法
使用adb指令强行修改方向还是很方便的,问题在于某些手机权限不支持。
支持手机类型:小米,华为,VIVO,摩托罗拉,三星,魅族,一加(ACE除外)
不支持手机类型:OPPO系列,Realme系列,一加ACE系列
1 | //先执行这条指令来取消自动旋转<br>adb shell content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:0<br> <br>//旋转到横向:<br>adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:1<br> <br>//旋转到纵向:<br>adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0 |
执行成功后,可以很清楚地看到屏幕的方向变了,但是如果在不支持的手机类型执行失败时会报以下错误:
1 | Error while accessing provider:settings<br>java.lang.SecurityException: com.android.shell was not granted this permission: android.permission.WRITE_SETTINGS.<br> at android.os.Parcel.createExceptionOrNull(Parcel.java: 2389 )<br> at android.os.Parcel.createException(Parcel.java: 2373 )<br> at android.os.Parcel.readException(Parcel.java: 2356 )<br> at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java: 190 )<br> at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java: 142 )<br> at android.content.ContentProviderProxy.insert(ContentProviderNative.java: 550 )<br> at com.android.commands.content.Content$InsertCommand.onExecute(Content.java: 565 )<br> at com.android.commands.content.Content$Command.execute(Content.java: 521 )<br> at com.android.commands.content.Content.main(Content.java: 727 )<br> at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)<br> at com.android.internal.os.RuntimeInit.main(RuntimeInit.java: 419 )<br>Caused by: android.os.RemoteException: Remote stack trace:<br> at android.provider.Settings.isCallingPackageAllowedToPerformAppOpsProtectedOperation(Settings.java: 15387 )<br> at android.provider.Settings.checkAndNoteWriteSettingsOperation(Settings.java: 15267 )<br> at com.android.providers.settings.SettingsProvider.mutateSystemSetting(SettingsProvider.java: 2053 )<br> at com.android.providers.settings.SettingsProvider.insertSystemSetting(SettingsProvider.java: 1987 )<br> at com.android.providers.settings.SettingsProvider.insert(SettingsProvider.java: 767 ) |
主要的原因应该是手机厂商对系统权限进行了一定的限制,shell的权限级别不够修改setting,如果root了手机或者能够加上system权限的话就没这问题了。
3、短视频源码开发中代码方法
一般来讲都是在应用中的xml文件或者java代码里面写好了方向,但是我如果要强行指定全局的方向而不只是一个应用的话,最好的方式还是使用app_process的方法,在android里面运行个java程序。具体的代码也很简单。
1 | private final ServiceManager serviceManager = new ServiceManager();<br> //设置成横向 <br>serviceManager.getWindowManager().freezeRotation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);<br> <br>//设置成纵向<br>serviceManager.getWindowManager().freezeRotation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); |
该方法目前应该能够比较好地适配所有机型的。
以上就是 短视频源码技术开发知识:如果固定手机方向,更多内容欢迎关注之后的文章。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-08-10 直播平台开发,Flutter,Drawer侧滑
2022-08-10 直播软件搭建,流式布局,支持单选、多选等
2022-08-10 直播商城源码,Java实现上传图片压缩缩略图
2021-08-10 教你实现一对一直播系统源码自定义图形层次系统
2021-08-10 实现一对一直播软件源码控制台下载进度效果
2021-08-10 Eclipse实现直播视频app源码图片模糊化