需求分析
产品为一款基于android的交互终端,现在已经在android嵌入式系统上运行了一个第三方的交易软件(没有源码)。在产品量产投入使用时,可以实现以下两点需求:
设备开机时自动启动交易App。
由于产品投入市场之前,需要对系统的Framework进行定制,屏蔽设备的状态栏,这样如果不借助其他设备,我们就无法退出到系统的Launcher进行其他操作,但为了方便现场开发人员调试,有时候需要打开系统的Setting,希望可以找到一种通过某种方法调出系统Setting的方法。
需求1的解决思路
针对需求1,解决思路为:
(1)自己创建一个App,在Manifest.xml文件下加入:
将我们的App提升为系统Launcher级别的App。
(2)获取第三方的交易软件的包名方法为打开第三方交易软件App,利用Adb工具输入指令:adb shell dumpsys activity | grep mFocusedActivity会打印出类似下面的内容:
mFocusedActivity: ActivityRecord{42ddcd78 u0 com.android.mms/.ui.ConversationList t3}
即可得到返回栈栈顶,及当前活动的Acitivity的信息,信息为包名+活动名。获得包名和活动名之后,我们就可以得到完整的跳转代码,形式如:
Intent mIntent = new Intent();
ComponentName mComp = new ComponentName("包名", "活动名");