首先,本人有20年编程经验,但是安卓开发是零经验。车载安卓的定制化“桌面”,有个启动导航的快捷按钮,但是它只能固定启动凯立德我想做个后台服务,监听这个启动操作,截获之后,改为启动高德。希望,能得到些指点。比如安卓开发,创建工程时,是否有普通应用和后台服务之分?
监听A要启动B,用什么API,如何“杀”掉这个启动命令?
转为去启动C,又改用什么API或者有什么学习资料是相对捷径的,谢谢!

解决方案 »

  1.   

    创建工程时没得普通应用和后台服务之分。
    其他的问题,如果你是root权限啥都可以干
      

  2.   

    按钮>发布特定广播信息>接收特定广播信息>启动凯立德
      

  3.   

    1.在A的onCreate()方法中做拦截操作,这个拦截操作必须要在逻辑处理之前,而且要在setContenView()之前。
    2.通过广播进行分发消息,接受广播信息,根据接收的信息启动任何界面
    3.通过自定义协议,在启动A之前,确定协议内容
      

  4.   

    明白你意思,就是你的车载系统是Android的 桌面有个导航,但是点进去是凯立德,你的车是别克吧?哈哈 
    你是想点击导航进入高德而不是凯立德,对吧?
    其实你想复杂了,你先把你的系统设置为开发者模式
    你也有开发经验 后面不用说你也知道了。直接装一个高德 或者把高德提出来 凯立德就可以删掉了
      

  5.   

    那个快捷按钮应该是系统的吧?或者是其他app的?
    Android启动一个界面是通过Context.startActivity(Intent intent)的,里面的intent是可以指定你要启动一个什么界面,这个界面可以是调用这个代码的那个app,也可以是第三方app,甚至可以指定启动什么功能的界面,就好像可以指定有导航功能的App的某个界面。而你说的那个按钮不知道是写死了固定调用凯立德这个app的导航界面还是可以让用户选择用哪个app的导航功能。如果是后者那就好办了,你可以在车载安卓系统那安装个高德地图,点击那个按钮系统会让你选择用哪个app来导航的,如果能卸载凯立德那app的话,系统就会自动跳到高德那去了;但如果是前者,你可以自己做一个应用,集成高德地图的api来做导航功能。
      

  6.   

    如果你想截获别的app启动界面,在我看来是做不到的,除非就是我上面说的你注册了它需要的那个功能的界面,或者修改那个按钮功能的代码(这个不容易吧,需要root权限不说了,还需要反编译出那里的代码,感觉还不如自己做一个这样功能的app)。