Android开发之TV端APP在手机上运行
2016-12-06 16:03
267 查看
最近在开发电视端的APP,接到一个任务,要开发一个手机端的APP,让我先做测试,看手机上的一些服务在手机上是否能够正常运行?好吧,我先测试吧,不知道如何下手,让我写界面?还是算了吧,写了也没有用,就我那点审美观,写出来肯定用不上。于是我就想啊,既然都是Android系统,应该都可以运行吧,不管它,先安装上再说,结果遇到了下面几个问题。
在手机端,一般而言宽是小于高的,而TV端宽是大于高的。在程序调用onCreate之后,若没有设置过横竖屏,TV端(横屏为默认)和手机端(竖屏为默认)获得的值是不一样的,所有出了问题,好吧,在初始化尺寸管理时,把在手机上得到的宽高调换一下,就ok了
用这个方法就可以实现所有的应用都可以接收到按键事件了,但是有点慢,希望有大神指出更快的方法。
1、第一个问题
安上之后,界面乱的一塌糊涂,我想,不应该啊,程序的屏幕适配已经做了啊,再乱,也不会是这样啊!查来查去,发现原来还真是屏幕适配出了问题。在手机端,一般而言宽是小于高的,而TV端宽是大于高的。在程序调用onCreate之后,若没有设置过横竖屏,TV端(横屏为默认)和手机端(竖屏为默认)获得的值是不一样的,所有出了问题,好吧,在初始化尺寸管理时,把在手机上得到的宽高调换一下,就ok了
2、第二个问题
在电视端,没有touch事件,只能通过遥控器的Key事件来作处理,而手机没有键盘,怎么办?弄个虚拟键盘,但是这事件该如何产生呢?网上搜了一大堆,好多都是下面这两个方法,好吧,做了一个悬浮窗(在这感谢一下伟大的互联网,是它让我可以快速地写一个悬浮窗),用第一个方法实现了想要的效果,虽然调试了一早上,第二个效果没有实现,可能是我不会用吧!方法一: Runtime runtime = Runtime.getRuntime(); runtime.exec("input keyevent " + KeyEvent.KEYCODE_BACK); 方法二:(开启一个线程去执行) Instrumentation inst = new Instrumentation(); inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
3、第三个问题
做完这些,我在想,我能不能做一个悬浮窗,然后所有的TV应用都能够用它产生的事件做出响应,上面的方法只有本应用才起作用,其他应用是无法接收到的,那怎么办?思考手机上的键盘事件是怎么产生的?唉,菜鸟一个,暂时没法看懂Android源码!只能去网上找一些模拟方法,搜了好多,终于发现了一篇文章,原文链接在这儿,import java.io.OutputStream; /** * 用root权限执行Linux下的Shell指令 * * @author jzj * @since 2014-09-09 */ public class RootShellCmd { private OutputStream os; /** * 执行shell指令 * @param cmd 指令 */ public final void exec(String cmd) { try { if (os == null) { os = Runtime.getRuntime().exec("su").getOutputStream(); } os.write(cmd.getBytes()); os.flush(); } catch (Exception e) { e.printStackTrace(); } } /** * 后台模拟全局按键 * @param keyCode 键值 */ public final void simulateKey(int keyCode) { exec("input keyevent " + keyCode + "\n"); } }
用这个方法就可以实现所有的应用都可以接收到按键事件了,但是有点慢,希望有大神指出更快的方法。
相关文章推荐
- Eclipse开发Android程序如何在手机上运行
- Eclipse开发Android程序如何在手机上运行
- (转)Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题
- 使用Python开发Android应用程序:第三节 在电脑上编写程序在手机上运行
- Eclipse开发Android程序如何在手机上运行
- 云平台编程与开发(三):创建基于X5Cloud云平台的Hello World程序(运行在Android的手机、平板上)
- Android开发出来的APP在手机的安装路径是?
- Android for Java - Eclipse开发Android程序如何在手机上运行
- Eclipse开发Android程序如何在手机上运行
- Eclipse开发Android程序如何在手机上运行
- Eclipse开发Android程序如何在手机上运行
- Android开发19——将Android程序部署至真实Android手机以及asm.jar的运行
- (转)Android开发出来的APP在手机的安装路径是?
- 使用Python开发Android应用程序:第一节 在手机上配置Python运行环境
- Eclipse开发Android程序如何在手机上运行
- Eclipse开发Android程序如何在手机上运行
- 【代码】android 开发获取当前手机中安装的全部App列表
- Android开发把项目打包成apk,安卓到手机上,或者提交到app应用商店
- 【android开发】手机应用管理器的实现之实现对应用程序的运行、分享、卸载功能(三)
- Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题