如何通过指令输入来启动安卓应用程序

原创 2015年11月17日 19:16:05

        在安卓开发中,有时我们并不希望开发的应用程序让所有其他用户使用,仅限于内部测试使用,这时,通过指令输入的方式来启动这样的应用是一个不错的选择。实际中,大多数开发的安卓应用是直接安装使用的,安装后它们都会在桌面上显示该应用的图标,那么如何不通过点击应用图标,而是通过指令来启动呢?

        应从以下两个地方对源码文件进行修改:

        1、创建指令接收类,该类主要用于接收启动应用的指令,并启动程序入口主类来开启该程序;

         代码如下:

package com.android.xxx;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;

public class MyBroadcastReceiver extends BroadcastReceiver{
	
	
	private static final String TAG = "MyBroadcastReceiver";

	@Override
	public void onReceive(Context context, Intent intent) {
            Uri uri = intent.getData();
            String host = uri.getHost();
            
            Intent i = new Intent(Intent.ACTION_MAIN);
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Log.i(TAG,"指令输入");    
		if("1234".equals(host))//判断输入的指令,并开启程序主类
                {
                i.setClass(context, MainActivity.class);
                context.startActivity(i);//开启程序主类
                }						
	}	
}
        2、修改AndroidManifest.xml文件 ,用来不显示程序图标和创建指令接收器;

       代码如下:

            <receiver android:name=".MyBroadcastReceiver">
	        <intent-filter>
	            <action android:name="android.provider.Telephony.SECRET_CODE" />
	            <data android:scheme="android_secret_code" 
	                  android:host="1234" />	            
	        </intent-filter>
	    </receiver>
	    
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
       这样在编译安装该程序后,在手机拨号键盘上输入*#*#1234#*#*就可以开启该程序了。不同平台的手机,指令的前后缀也会有所不同,这一点需要注意

   

版权声明:本文为博主原创文章,转载请注明出处。

Android从一个应用程序启动第三方应用app

需求场景: 在自己开发的应用程序里,有个跳转到其他应用的按钮,比如分享到“新浪微博”,当点击这个按钮时,先判断手机中是否有安装“新浪微博”这个程序,有则启动“新浪微博”客户端,否则从...
  • TTKatrina
  • TTKatrina
  • 2016年02月27日 14:08
  • 9581

安卓应用程序的基础介绍

-- Activity(界面), service(服务), content provider(内容提供者), broadcast receiver(广播接收者)并称安卓四大组件. 一个安卓应用程序由一...
  • waym2352
  • waym2352
  • 2014年12月12日 15:15
  • 1217

Android四大组件之Activity的四种启动模式

一个应用中可能有多个界面 那么每个界面展示的次序不同,创建的先后顺序不同,存储界面的内存方式也不同,我们称这种存储方式为任务栈。 1. 栈的特点:先进后出 2. 任务栈的配置位置:AndroidM...
  • caidie_huang
  • caidie_huang
  • 2016年10月27日 17:20
  • 181

Android apk应用程序启动慢的问题

遇到的问题:   开发的App,从点击图标到出现画面,需要大约六七秒的时间。有点超出了用户能够接受的程度,很多人对此抱怨。所以现在着手进行优化,希望可以改善。但试过一些方法都未能成功,不知道大家有没...
  • wang2470198567
  • wang2470198567
  • 2014年09月03日 15:45
  • 1795

android 启动界面广告的显示

1.问题:现在很多应用在启动界面加上一些广告或者在特殊的节日显示不同的slogn,具体实现的方案有两种: 1. 启动的时候去拉取图片,这样实时性会很高,但是在网络不好的情况下会加载失败 2. 在用...
  • iloster
  • iloster
  • 2015年12月16日 22:23
  • 1694

android根据packagename激活后台程序到前台/打开程序(与在luancher中点击应用图标效果相同)

废话不说,留着自己以后查找方便,要实现在lunancher中的点击效果,(程序后台就激活到前台,而不是启动某一个activity新实例) 关键是设置intent的flag, intent.addF...
  • NN955
  • NN955
  • 2015年09月11日 09:19
  • 1842

a安卓工程模式指令

CodesNote,您可以指定这些快捷方式使用Anycut这些代码运行申请最多。例如,*#*#4636#*#* - >电池信息可以直接访问通过创建一个“活动Anycut捷径”“电池信息”。  复位  ...
  • YangRunkangBla
  • YangRunkangBla
  • 2015年04月19日 22:56
  • 439

安卓应用程序的签名

签名安卓应用程序
  • zzfenglin
  • zzfenglin
  • 2016年04月04日 16:33
  • 1486

Service与Android系统实现(1)-- 应用程序里的Service

原文出处:http://blog.csdn.net/21cnbao/article/details/8086487 Service与Android系统实现(1)-- 应用程序里的Serv...
  • zjx2014430
  • zjx2014430
  • 2016年05月20日 16:27
  • 860

Android - 在一个应用程序中启动另外一个已经安装的应用程序或系统程序(前提是要知道该应用程序的主activity和包名)

//组件名称,第一个参数是应用程序的包名,后一个是这个应用程序的主Activity       ComponentName com = new ComponentName("com.antroid....
  • chenlang888
  • chenlang888
  • 2014年11月30日 15:39
  • 3667
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何通过指令输入来启动安卓应用程序
举报原因:
原因补充:

(最多只允许输入30个字)