求助,Android应用实现强行霸屏功能

SentinEM 2020-10-14 08:40:04
客户需求:应用开机启动,隐藏导航栏和下方虚拟按键,退出时需要输密确认才能退出应用

其他功能都实现了,并重载了返回键在退出应用时输密确认,但屏幕下方home键以及任务视图方形按键不能重载方法,只能做监听处理,按下还是能退出应用

请问各位大神有无一种方法,可使得应用从开机自启动之后强行霸屏,按什么键都没用
...全文
44153 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
比特灵 2020-10-29
  • 打赏
  • 举报
回复
如果是自己能控制的设备就简单了,跟16楼删除桌面一个道理,我的做法是重命名Launcher3。在自己的Launcher里做个小功能可以一键还原。
ink_s 2020-10-29
  • 打赏
  • 举报
回复
设置下桌面activity的启动模式吧,设置singleInstance 或者 singleTask 试试?
立青_ 中级 2020-10-27
  • 打赏
  • 举报
回复
引用 12 楼 SentinEM 的回复:
引用 10 楼 心的夙愿 的回复:
解决了没有啊,我也遇到了。。。
2L可以将系统桌面替换成应用界面,但是操作跳转到其他活动界面之后返回好像会重新走一遍主活动界面流程,导致一些变量重新初始化
当存在多个桌面时,系统会提示选择桌面,可以选择永远,更好的做法是直接把原桌面卸载掉,用自己的app替代。
        //系统应用路径(/system/app/)
        final File path =new File( Environment.getRootDirectory(),"/app");
        File file = new File(path, "/Launcher3");
        if (!file.exists()) {
            file = new File(path, "/Launcher");
        }
        if (file.exists()) {
            //系统桌面路径
            final String finalFile = file.getAbsolutePath();
            ThreadPools.execute(() -> {
                //单用户模式
                String cmd="mount -o rw,remount /system";
                //强制删除系统桌面
                String delLauncher="rm -rf "+ finalFile;
                //修改文件权限
                String modifyPermissionsCmd="chmod 777 /system";
                //移动app到system/app下
                String moveCmd="cp  " + getPackageResourcePath() + " " + path.getAbsolutePath();
                //重启
                String reboot ="reboot";
                AppUtils.executeCmd(cmd,delLauncher,modifyPermissionsCmd,moveCmd,reboot);
            });
        }
ThreadPools是线程池,AppUtils.executeCmd是操作命令
立青_ 中级 2020-10-27
  • 打赏
  • 举报
回复
安卓板是自己的,有root或系统权限,那直接把系统桌面替换成自己的就行了
SentinEM 2020-10-27
  • 打赏
  • 举报
回复
引用 2 楼 ink_s 的回复:
<activity android:name=".MainActivity">
<intent-filter>
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>





<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
用这种方式又引入了新的问题,个人猜想是这种方法实际上使用我的应用界面替换了系统桌面界面,但每次通过home键等方式回退到应用界面时都重新初始化了该活动类。

我把MainActivity在androidmanifest设置了如上属性,其中有一个Socket变量用来接收socket请求,处理socket请求需要跳转至其他activity,处理完成后返回MainActivity,该Socket变量就为空了。正常打开应用不会出现这个问题,只有通过home键等返回桌面的操作才会复现这个问题,求大神指导
SentinEM 2020-10-27
  • 打赏
  • 举报
回复
引用 11 楼 Lty01 的回复:
这个让系统层面实现会简单很多
哎....系统不是自家公司做的,从其他公司定做的,如果从系统层面修改就要再去跟系统厂商沟通,商务成本就又要再增加
SentinEM 2020-10-27
  • 打赏
  • 举报
回复
引用 10 楼 心的夙愿 的回复:
解决了没有啊,我也遇到了。。。
2L可以将系统桌面替换成应用界面,但是操作跳转到其他活动界面之后返回好像会重新走一遍主活动界面流程,导致一些变量重新初始化
Lty01 2020-10-27
  • 打赏
  • 举报
回复
这个让系统层面实现会简单很多
心的夙愿 2020-10-27
  • 打赏
  • 举报
回复
解决了没有啊,我也遇到了。。。
比特灵 2020-10-27
  • 打赏
  • 举报
回复
作为工控机或者开放场所设备,这是必须的,别想的太多。
引用 8 楼 Write_BUG小能手 的回复:
做个人吧。。。。。在这样搞 我们这行 就臭了
SentinEM 2020-10-27
  • 打赏
  • 举报
回复
引用 18 楼 立青_ 的回复:
引用 17 楼 SentinEM 的回复:
[quote=引用 16 楼 立青_ 的回复:][quote=引用 12 楼 SentinEM 的回复:][quote=引用 10 楼 心的夙愿 的回复:]解决了没有啊,我也遇到了。。。
2L可以将系统桌面替换成应用界面,但是操作跳转到其他活动界面之后返回好像会重新走一遍主活动界面流程,导致一些变量重新初始化
当存在多个桌面时,系统会提示选择桌面,可以选择永远,更好的做法是直接把原桌面卸载掉,用自己的app替代。
        //系统应用路径(/system/app/)
final File path =new File( Environment.getRootDirectory(),"/app");
File file = new File(path, "/Launcher3");
if (!file.exists()) {
file = new File(path, "/Launcher");
}
if (file.exists()) {
//系统桌面路径
final String finalFile = file.getAbsolutePath();
ThreadPools.execute(() -> {
//单用户模式
String cmd="mount -o rw,remount /system";
//强制删除系统桌面
String delLauncher="rm -rf "+ finalFile;
//修改文件权限
String modifyPermissionsCmd="chmod 777 /system";
//移动app到system/app下
String moveCmd="cp " + getPackageResourcePath() + " " + path.getAbsolutePath();
//重启
String reboot ="reboot";
AppUtils.executeCmd(cmd,delLauncher,modifyPermissionsCmd,moveCmd,reboot);
});
}

ThreadPools是线程池,AppUtils.executeCmd是操作命令[/quote]没有其他回复就拿你的结帖了...
客户有需求是留有系统桌面,可输密退出[/quote]为啥一定要有系统桌面,如果只是简单的打开应用或简单功能,干脆写在自己的app里,说白了系统桌面也是App啊,把功能全写在自己的App,输密退出变成跳转到另一个活动[/quote]可以,这个重写桌面程序还没试过
膜拜大佬
立青_ 中级 2020-10-27
  • 打赏
  • 举报
回复
引用 17 楼 SentinEM 的回复:
引用 16 楼 立青_ 的回复:
[quote=引用 12 楼 SentinEM 的回复:][quote=引用 10 楼 心的夙愿 的回复:]解决了没有啊,我也遇到了。。。
2L可以将系统桌面替换成应用界面,但是操作跳转到其他活动界面之后返回好像会重新走一遍主活动界面流程,导致一些变量重新初始化
当存在多个桌面时,系统会提示选择桌面,可以选择永远,更好的做法是直接把原桌面卸载掉,用自己的app替代。
        //系统应用路径(/system/app/)
        final File path =new File( Environment.getRootDirectory(),"/app");
        File file = new File(path, "/Launcher3");
        if (!file.exists()) {
            file = new File(path, "/Launcher");
        }
        if (file.exists()) {
            //系统桌面路径
            final String finalFile = file.getAbsolutePath();
            ThreadPools.execute(() -> {
                //单用户模式
                String cmd="mount -o rw,remount /system";
                //强制删除系统桌面
                String delLauncher="rm -rf "+ finalFile;
                //修改文件权限
                String modifyPermissionsCmd="chmod 777 /system";
                //移动app到system/app下
                String moveCmd="cp  " + getPackageResourcePath() + " " + path.getAbsolutePath();
                //重启
                String reboot ="reboot";
                AppUtils.executeCmd(cmd,delLauncher,modifyPermissionsCmd,moveCmd,reboot);
            });
        }
ThreadPools是线程池,AppUtils.executeCmd是操作命令[/quote]没有其他回复就拿你的结帖了... 客户有需求是留有系统桌面,可输密退出[/quote]为啥一定要有系统桌面,如果只是简单的打开应用或简单功能,干脆写在自己的app里,说白了系统桌面也是App啊,把功能全写在自己的App,输密退出变成跳转到另一个活动
SentinEM 2020-10-27
  • 打赏
  • 举报
回复
引用 16 楼 立青_ 的回复:
引用 12 楼 SentinEM 的回复:
[quote=引用 10 楼 心的夙愿 的回复:]解决了没有啊,我也遇到了。。。
2L可以将系统桌面替换成应用界面,但是操作跳转到其他活动界面之后返回好像会重新走一遍主活动界面流程,导致一些变量重新初始化
当存在多个桌面时,系统会提示选择桌面,可以选择永远,更好的做法是直接把原桌面卸载掉,用自己的app替代。
        //系统应用路径(/system/app/)
final File path =new File( Environment.getRootDirectory(),"/app");
File file = new File(path, "/Launcher3");
if (!file.exists()) {
file = new File(path, "/Launcher");
}
if (file.exists()) {
//系统桌面路径
final String finalFile = file.getAbsolutePath();
ThreadPools.execute(() -> {
//单用户模式
String cmd="mount -o rw,remount /system";
//强制删除系统桌面
String delLauncher="rm -rf "+ finalFile;
//修改文件权限
String modifyPermissionsCmd="chmod 777 /system";
//移动app到system/app下
String moveCmd="cp " + getPackageResourcePath() + " " + path.getAbsolutePath();
//重启
String reboot ="reboot";
AppUtils.executeCmd(cmd,delLauncher,modifyPermissionsCmd,moveCmd,reboot);
});
}

ThreadPools是线程池,AppUtils.executeCmd是操作命令[/quote]没有其他回复就拿你的结帖了...
客户有需求是留有系统桌面,可输密退出
SilentHunter460 2020-10-26
  • 打赏
  • 举报
回复
那用户还可以按住开关机键强制重启。
Write_BUG小能手 初级 2020-10-26
  • 打赏
  • 举报
回复
做个人吧。。。。。在这样搞 我们这行 就臭了
gaoxing_1985007 2020-10-15
  • 打赏
  • 举报
回复
this.startLockTask(); //这个可以锁定你的应用,但是还是有按键可以取消锁定
闫文敬 2020-10-15
  • 打赏
  • 举报
回复
哈哈哈,这个功能现在已经不行了,实现不了了,做个好人,不要为了金钱胡作非为,谢谢!
霖霖怪 2020-10-14
  • 打赏
  • 举报
回复
<category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> <action android:name="android.intent.action.MAIN" />
ink_s 2020-10-14
  • 打赏
  • 举报
回复
<activity android:name=".MainActivity"> <intent-filter> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" />
立青_ 中级 2020-10-14
  • 打赏
  • 举报
回复
把你应用弄成桌面
加载更多回复(1)
内容概要:本文围绕基于三重移相控制(TPS)的双有源桥(DAB)高频隔离DC-DC变换器开展系统性研究,重点构建了其在Simulink环境下的高精度仿真模型。研究全面涵盖SPS单相移相、DPS双重重移相与TPS三重移相等多种控制策略的建模、实现与性能对比,深入分析不同模式下变换器的功率传输特性、软开关实现条件及功率回流问题,旨在提升DAB在交直流混合微电网、能量路由器、多端口柔性互联装置等场景中的转换效率与动态响应能力。通过对ZVS(零电压切换)条件的精确控制与移相角参数的优化,有效降低了开关损耗,增强了系统整体能效与运行稳定性。该仿真模型具有良好的可扩展性,适用于复杂电能转换系统的科研验证与工程开发。; 适合人群:电力电子、电气工程及其自动化等相关专业的硕士研究生、博士生、科研人员以及从事新能源变换器、柔性输配电系统设计的工程技术人员。; 使用场景及目标:①掌握双有源桥DAB变换器的基本工作原理及其在高频隔离场合的核心优势;②深入理解三重移相控制策略的设计机理、控制自由度分配及其在效率优化中的关键作用;③构建并调试可用于科研论文撰写、项目申报或实际系统验证的高保真Simulink仿真模型,支撑理论分析与实验对比。; 阅读建议:建议结合MATLAB/Simulink平台进行动手实践,重点关注主电路拓扑搭建、移相控制模块设计、驱动信号时序配置及ZVS实现条件的仿真观测,推荐通过对比SPS、DPS与TPS三种模式的稳态与动态响应曲线,深入掌握各控制策略的适用边界与优化方向。

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧