• execlp启动android进程命令


    execlp启动Android界面或service/广播参数设置

    -n代表打开组件
    -d代表 data
    -a代表action

    打开网页 调用am命令

         if (sdkVersion >= 17) {  
                // Android4.2系统之后支持多用户操作,所以得指定用户  
                execlp("am", "am", "start", "--user", "0", "-a",  
                        "android.intent.action.VIEW", "-d", "http://www.baidu.com",  
                        (char*) NULL);  
            } else {  
                // Android4.2以前的版本无需指定用户  
                execlp("am", "am", "start", "-a", "android.intent.action.VIEW",  
                        "-d", "http://www.baidu.com", (char*) NULL);  
            }  

    打开Activity

    execlp("am", "am", "start", "--user","0", "-n" , "com.test.demo/com.test.demo.MainActivity",(char *) NULL);

    命令窗口通过adb shell 进入android 的Linux命令界面,输入am -help看到如下信息:

    我们可以通过命令启动android中的Activity,Service,BroadcastReceiver 等组件

    1. 拨打一个电话:

    am start -a android.intent.action.CALL -d tel:10086

       这里-a表示动作,-d表述传入的数据,还有-t表示传入的类型。

    2. 打开一个网页:

    am start -a android.intent.action.VIEW -d  http://www.baidu.com   //(这里-d表示传入的data)

    3. 打开音乐播放器:  

     am start -a android.intent.action.MUSIC_PLAYER 或者
    
     am start -n com.android.music/om.android.music.MusicBrowserActivity

    4. 启动一个服务:

        am startservice <服务名称>

        例如:am startservice -n com.android.music/com.android.music.MediaPlaybackService (这里-n表示组件)
    
        或者   am startservice -a com.smz.myservice (这里-a表示动作,就是你在Androidmanifest里定义的) 

    5. 发送一个广播:

        am broadcast -a <广播动作>

     例如: am broadcast -a com.smz.mybroadcast

     am还有很多的用法,有待研究。

    一、adb启动activity:

    $ adb shell
    $ am start -n {包(package)名}/{包名}.{活动(activity)名称}
    如:启动浏览器
    # am start -n com.android.browser/com.android.browser.BrowserActivity
     
    二、adb启动service:
    $ adb shell
    $ am startservice -n {包(package)名}/{包名}.{服务(service)名称}
    如:启动自己应用中一个service
    # am startservice -n com.android.traffic/com.android.traffic.maniservice
     
    三、adb发送broadcast:
    $ adb shell
    $ am broadcast -a <广播动作>
    如:发送一个网络变化的广播
    # am broadcast -a android.net.conn.CONNECTIVITY_CHANGE
  • 相关阅读:
    java判断一个字符串是否包含某个字符
    Java去掉Html标签的方法
    如何转换成utf-8格式的,在jsp页面中正常显示换行
    a标签设置手型
    a标签置灰不可点击
    校验手机号码格式
    用JQuery 判断某个属性是否存在hasAttr的解决方法
    验证手机号码 (包含166和199)
    获取短信验证码倒计时
    Noisy Channel模型纠正单词拼写错误
  • 原文地址:https://www.cnblogs.com/mingfeng002/p/6934268.html
Copyright © 2020-2023  润新知