安卓11客制需求:用户无操作一段时间,自动播放客户提供的视频,用户操作后退出播放
在PowerManagerService.java中监听用户操作,10秒无操作则打开预置的apk播放视频,直接上代码:
--- a/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
@@ -2359,6 +2359,17 @@ public final class PowerManagerService extends SystemService}}+ //用户无操作10s后,通过intent启动循环播放视频的apk
+ if(now-mLastUserActivityTime>=10000 && mBootCompleted && mSystemReady){
+
+ Intent intent = new Intent();
+ intent.setClassName("com.example.autoplayvedio","com.example.autoplayvedio.MainActivity");
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ mContext.startActivity(intent);
+
+ }
+
+if (mUserActivitySummary != USER_ACTIVITY_SCREEN_DREAM && userInactiveOverride) {if ((mUserActivitySummary &(USER_ACTIVITY_SCREEN_BRIGHT | USER_ACTIVITY_SCREEN_DIM)) != 0) {
apk autoplayvideo 的关键代码:
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="com.example.autoplayvedio"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"><activityandroid:name=".MainActivity"android:screenOrientation="landscape"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><!-- 系统中不生成apk图标 --><data android:host="LaunchActivity" android:scheme="com.example.autoplayvedio" tools:ignore="AppLinkUrlError"/><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>
MainActivity.java:
package com.example.autoplayvedio;import androidx.appcompat.app.AppCompatActivity;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.VideoView;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);VideoView video = findViewById(R.id.video);android.widget.MediaController mc = new android.widget.MediaController(MainActivity.this);//本地连接地址//res目录下新建raw目录,视频上传至此处String uri = "android.resource://" + getPackageName() + "/" + R.raw.vedio;video.setVideoURI(Uri.parse(uri));video.setMediaController(mc);mc.setMediaPlayer(video);video.requestFocus();video.start();video.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {@Overridepublic void onPrepared(MediaPlayer mp) {mp.setLooping(true);//让视频循环播放}});//监听到触摸事件后,执行 System.exit(0);video.setOnTouchListener((view, motionEvent) -> {if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {Log.d("guoyh", "Touched the screen");// finish();System.exit(0);}return false;});}}
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><VideoViewandroid:id="@+id/video"android:layout_width="match_parent"android:layout_height="match_parent" /></RelativeLayout>
安卓11客制需求:用户无操作一段时间,自动播放客户提供的视频,用户操作后退出播放相关推荐
- 安卓11客制需求:在设定时间开启深色主题模式,21点开启,次日8点关闭
控制深色模式开启方式的代码在这个路径下面:frameworks/base/core/res/res/values/config.xml 这里可以看到注释里有三个值可以选,系统默认选择的是1,也就是不开 ...
- 安卓11客制需求:<MtkSettings:添加桌面设置,并且能够正常切换桌面APK>
需要修改的路径代码路径:vendor/mediatek/proprietary/packages/apps/MtkSettings/AndroidManifest.xml <!-- 注册一个ac ...
- 安卓11客制需求-去除设置-无障碍-放大功能
去除菜单项大致思路:通过控制显示一级菜单的top_level_settings.xml找到父菜单,这里找到的是top_level_accessibility对应无障碍菜单 看它的fragment,在目 ...
- 安卓11客制需求:设置-无障碍-触摸和按住延迟默认为中
首先通过控制显示一级菜单项的top_level_settings.xml(vendor\mediatek\proprietary\packages\apps\MtkSettings\res\xml)找 ...
- 安卓11客制需求:第三方应用aida64检测蓝牙版本修改为5.0
路径:frameworks/base/core/java/android/widget/TextView.java @@ -6088,6 +6088,13 @@ public class TextVi ...
- android程序运行无操作一段时间显示屏保
项目中遇见一个这样的需求,就是当软件在一定时间没有操作时候需要弹出广告页面,当点击广告页面时又进行软件操作,也就是广告要在软件打开并且处于未操作状态才会出来. 这个操作最好放到BaseActivity ...
- (一)安卓智能广告机,实现广告分屏播放(根据图片/视频链接进行加载播放)
本文将持续更新,打造一个完整的智能广告发布系统. 一.效果 本篇最终实现播放效果: 广告机上部播放图片,下部播放视频. 二.用到的工具 (1)使用 convenientbanner作为图片轮播的工具 ...
- SystemUi状态栏客制化功能和常见问题分析
一.多图标成点 当系统图标区域或者通知图标区域图标过多,而区域不够时,就会将多余的图标隐藏,并显示一个点,如下图所示. 介绍此功能之前先看一下图标的初始化过程,从中可以看到有个config_statu ...
- 腾讯出品:6.4亿短视频用户的狂欢洞察报告
来源:酷鹅俱乐部 数据猿官网 | www.datayuan.cn 今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC大鱼丨新浪微博丨新浪看点丨百度百家丨博客中国丨趣头条丨腾讯云·云+社区 一面是经济 ...
最新文章
- 3分钟解决MySQL 1032 主从错误(转)
- 自己动手制作的一个JDBC的套件封装,求指导
- SAP标准导出功能 - 删除默认选定格式
- 活在无尽梦境的后续 β
- 时间轴CSS的Demo
- java 图片合成 红色失真_Java - 处理某些图片泛红
- RouterOS 端口映射与回流
- Xcode12.3 、12.4 运行 iOS15 :The code signature version is no longer supported
- 《OpenGL编程指南》收藏的学习网址
- 公众号迁移开通留言功能
- YAPI自动生成接口文档,解放测试人生产力...
- snapchat中国使用_如何使用Snapchat:发送快照和消息的基础
- 当AI有了“自由意志”
- Kali Linux系统安装
- 【Java获取国家法定节假日三种工具类其二】
- 万字长文!终于讲透了Python中的多线程和多进程!
- Golang 计算MD5值
- JVM内存和垃圾回收-12.String Table
- 雨 霖 铃 【鉴赏】
- 2018/05/11,暗里着迷