android手机开机自动启动程序源码

合集下载

android源代码学习开机自启动service

android源代码学习开机自启动service

Android 开机自启动serviceimport Android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class yourReceiver extends BroadcastReceiver { @Overridepublic void onReceive(Context context, Intent intent) { Intent i = new Intent(context, ServiceTest.class);i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startService(i);}}复制代码ServiceTest 类:package ;import Java.util.Calendar;import android.app.Service;import android.content.Intent;import android.os.Handler;import android.os.IBinder;import android.util.Log;public class ServiceTest extends Service{Handler hd1=new Handler();/**启动activity的开关*/boolean b;/**启动一次activity之后的一分钟内将不再重新启动*/int time;public static final Intent ACTION_START = null;private static final String TAG = "TestService";@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic boolean onUnbind(Intent i) {Log.e(TAG, "============> TestService.onUnbind");return false;}@Overridepublic void onRebind(Intent i) {Log.e(TAG, "============> TestService.onRebind");}@Overridepublic void onCreate() {Log.e(TAG, "============> TestService.onCreate");hd1.postDelayed(mTasks, delay);@Overridepublic void onStart(Intent intent, int startId) {Log.e(TAG, "============> TestService.onStart");}@Overridepublic void onDestroy() {Log.e(TAG, "============> TestService.onDestroy");}public void log(){Calendar c= Calendar.getInstance();int h=c.getTime().getHours();int m=c.getTime().getMinutes();Log.i("hour", ""+h);Log.i("minute", ""+m);/**这里的16和10可以自己定义一下主要是提醒的时间设置,我不想做的太繁琐,所有没有些闹钟,只是用这个测试一下:)*/if(h==16&&m==10){/**为防止持续调用,所以用boolean 变量b做了一个小开关*/if(!b){Intent i = new Intent();i.setClass(ServiceTest.this, showActivity.class);i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);this.startActivity(i);this.stopSelf();b=true;}}/**开关开启后计时60秒,在这60秒之内就不再重新启动activity了,而60秒一过,上面的h和m条件肯定就不成立了*/if(b){time+=5;if(time==60){time=0;b=false;}}}/** 速度控制参数(单位豪秒) */private int delay = 5000;/*** 控制速度* */private Runnable mTasks = new Runnable()public void run(){log();hd1.postDelayed(mTasks, delay);}};}复制代码showActivity 类:(次类中啥都没有,就是演示一下activity可以被启动)package ;import .R;import android.app.Activity;import android.os.Bundle;import android.view.Window;import android.view.WindowManager;public class showActivity extends Activity{@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(youtParams.FLAG_FULLSCREEN, youtParams.FLAG_FULLSCREEN);setContentView(yout.main);}}复制代码下面是很重要的AndroidManifest< ?xml version="1.0" encoding="utf-8"?>< manifest xmlns:android="/apk/res/android"package=""android:versionCode="1"android:versionName="1.0"><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> < applicationandroid:icon="@drawable/icon"android:label="@string/app_name">< serviceandroid:name=".ServiceTest"android:label="@string/app_name">< intent-filter>< action android:name="android.intent.action.MAIN" />< category android:name="UNCHER" />< /intent-filter>< /service>< receiver android:name=".yourReceiver" >< intent-filter>< action android:name="android.intent.action.BOOT_COMPLETED" /> < category android:name="android.intent.category.HOME"/>< /intent-filter>< /receiver>< activity android:name=".showActivity"android:label="@string/app_name"android:configChanges="orientation|keyboardHidden|navigation" android:screenOrientation="portrait">< intent-filter>< action android:name="android.intent.action.MAIN" />< category android:name="UNCHER" /> < /intent-filter>< /activity>< /application>< uses-SDK android:minSdkVersion="4" />< /manifest>。

在 Android 启动时自动运行程序

在 Android 启动时自动运行程序

如何在 Android 启动时自动运行程序编写 BroadcastReceiver 扩展,并接收 android.intent.action.BOOT_COMPLETED 事件代码如下in AndroidManifest.xml (application-part):<receiver android:enabled="true" android:name=".BootUpReceiver"android:permission="android.permission.RECEIVE_BOOT_COMPLETED"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></receiver>[..]<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> [..]public class BootUpReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {Intent i = new Intent(context, MyActivity.class);i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);}}-------------------------------------------------------------------------------------------------------------------------------一般Android组件通过Intent进行跳转,还一种情况是系统的Broadcast,系统在启动,闹钟,来电等一些情况下,会广播一些消息给所有的接收者,这些接收者都由BroadcastReceiver来派生。

Android Service如何开机自启动以及自启动失败原因

Android Service如何开机自启动以及自启动失败原因

Android Service如何开机自启动以及自启动失败原因本文主要介绍Android Service如何开机自启动、自启动失败的原因、adb命令发送BOOT_COMPLETED。

应用程序是否可以在安装后自启动,没有ui的纯service应用如何启动?1、Android应用如何开机自启动(1)、在AndroidManifest.xml中注册AndroidManifest.xml中注册BOOT_COMPLETED Action注意不仅要添加android.intent.action.BOOT_COMPLETED对应的action,还需要添加对应的uses-permission(2)、Receiver接收广播进行处理public class BootBroadcastReceiver extends BroadcastReceiver {public static final String TAG = "BootBroadcastReceiver";@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction().toString();if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {// u can start your service hereToast.makeText(context, "boot completed action has got", Toast.LENGTH_LONG).show();return;}}}2、自启动失败的原因接收不到BOOT_COMPLETED广播可能的原因(1)、BOOT_COMPLETED对应的action和uses-permission没有一起添加(2)、应用安装到了sd卡内,安装在sd卡内的应用是收不到BOOT_COMPLETED广播的(3)、系统开启了Fast Boot模式,这种模式下系统启动并不会发送BOOT_COMPLETED广播(4)、应用程序安装后重来没有启动过,这种情况下应用程序接收不到任何广播,包括BOOT_COMPLETED、ACTION_PACKAGE_ADDED、CONNECTIVITY_ACTION等等。

Android自动开关机实现

Android自动开关机实现

Android 自动开关机的实现精讲Android 自动动开机,网上的介绍就比较少了,因为它需要底层rtc时钟的支持。

前段时间根据客户需求实现了自动开关机。

在这里分享一下。

1. 简介我的实现是在设置程序里面增加一个接口,让用户设置自动开关机,这个自动开关机的设置可以参照闹钟的设置。

关于自动关机,考虑到关机的时候,用户可能正有一些重要的操作,那么应该给用户一个机会去取消当前的关机。

1)一个BroadcastReceiver, 接收如下信息:a) 自定义的ACTION_REQUEST_POWER_OFF:设置auto power off时,通过AlarmManager设置的一个RTC_WAKEUP时钟。

当到设置的关机时间时,之前设置到AlarmManager的这个action会被广播。

我们实现的这个BroadcastReceiver接收到这个消息后,就要开始power off流程b) 自定义的ACTION_REQUEST_POWER_ON:设置auto power on时,通过AlarmManager设置的一个RTC_WAKEUP时钟。

我们知道power on的应该设置一个rtc的alarm,那么这个RTC_WAKEUP的alarm是做什么的呢?其实当用户设置自动关机的时候,我设置了2个时钟,一个是RTC时钟,用于关机状态下开机;还有一个就是这个RTC_WAKEUP时钟。

之所以设置这个时钟,其实是这样的,比如说你设置了周一到周五每天7点半自动开机,而周四早上你7点就打开了手机,这样到7点半的时候,之前设置的时钟就过期了,如果不重新设置的话,周五早上是不会自动开机的。

所以这个时候,之前设置的RTC_WAKEUP就接收到了这样的信息,在重新设置下次自动开机的时钟。

c) BOOT_COMPLETE和TIMEZONE changed, Time set等时间相关的action:当系统开机完成或时间、时区发生改变时,都需要重新设置alarm。

手机应用开机自启动管理方法

手机应用开机自启动管理方法

手机应用开机自启动管理方法随着智能手机的普及,我们每天都要使用各种各样的手机应用。

然而,很多应用在手机开机时会自动启动,导致手机运行速度变慢,耗电量增加。

为了解决这个问题,我们需要学习一些手机应用开机自启动管理的方法。

一、了解自启动应用的原理在深入了解如何管理自启动应用之前,我们需要了解自启动应用的原理。

自启动应用是指在手机开机时自动启动的应用程序。

这些应用程序通常会在后台运行,以便在需要时能够及时提供服务。

然而,过多的自启动应用会占用系统资源,导致手机变慢,耗电量增加。

二、使用系统自带的管理工具大多数手机都提供了自带的应用管理工具,可以帮助我们管理自启动应用。

在手机设置中,找到应用管理或应用设置选项,然后进入自启动管理界面。

在这个界面上,我们可以看到所有的自启动应用,并选择关闭其中一些不必要的应用。

关闭自启动应用后,手机开机时不会自动启动这些应用,从而减少系统负担。

三、使用第三方应用管理工具除了系统自带的管理工具,还有一些第三方应用管理工具可以帮助我们更好地管理自启动应用。

这些应用通常提供更多的功能和选项,可以更精确地管理自启动应用。

例如,我们可以设置某些应用在特定时间段内不自启动,或者根据需求灵活地开启或关闭自启动应用。

此外,一些第三方应用管理工具还提供了系统清理和优化功能,可以进一步提升手机的性能。

四、手动管理自启动应用除了使用应用管理工具,我们还可以手动管理自启动应用。

在手机设置中,找到应用管理或应用设置选项,然后进入已安装应用列表。

在这个列表中,我们可以找到每个应用的详细信息,包括是否允许自启动。

通过手动设置,我们可以选择关闭某些应用的自启动权限,从而控制自启动应用的数量。

五、定期检查和更新应用手机应用的开机自启动权限可能会随着应用的更新而改变。

因此,我们需要定期检查并更新手机上的应用程序。

在应用商店中,找到已安装的应用列表,检查是否有新的版本可用。

更新应用程序可以修复一些已知的问题,并可能改变应用的自启动权限。

Android开机自启动程序设置及控制方法

Android开机自启动程序设置及控制方法

Android开机自启动程序设置及控制方法Android系统通过应用程序自行在系统中登记注册事件(即Intent)来响应系统产生的各类消息。

例如Android实现系统开机自启动程需要在Manifest中加入如下Intent-filter及权限Uses-permission即可。

<intent-filter><actionandroid:name="android.intent.action.BOOT_COMPLETED"/> (修改时候主要是去掉上面该行即可)<category android:name="android.intent.category.HOME" /></intent-filter><uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETE D"/>(修改时候主要是去掉上面该行即可)Android系统为应用程序管理功能提供了大量的API,可以通过API控制Intent和permission,其中上述配置表示应用程序会响应系统产生的android.intent.action.BOOT_COMPLETED(系统启动完成)信号,以此来实现应用程序自启动。

当然知道上述原理后,我们就可以随心所欲的控制程序开机自启动了。

具体思路如下:一、手工方法基于上述原理,我们可以通过对系统中已安装的程序去除其Manifest的上述配置片段来控制应用程序的对系统的响应,当然没源码可修改编译的情况下只能实现屏蔽其对有些信号的响应,例如屏蔽该程序不再开机自启动。

手工方法就是利用有关工具直接在解压其APK包后,修改其Manifest的上述配置行后再打包成APK,最后安装到系统中就实现了屏蔽其自启动功能。

具体相关的工具软件主要有APKTOOL。

解析Android中如何做到Service被关闭后又自动启动的实现方法

解析Android中如何做到Service被关闭后又自动启动的实现方法

解析Android中如何做到Service被关闭后⼜⾃动启动的实现⽅法⾸先要说的是,⽤户可能把这种做法视为流氓软件。

⼤部分时候,程序员也不想把软件做成流氓软件,没办法,领导说了算。

我们在使⽤某些Android应⽤的时候,可能会发现安装了某应⽤以后,会有⼀些服务也会随之运⾏。

⽽且,这些服务每次都会随着⼿机开机⽽启动。

有的服务做的更绝,当⽤户在运⾏的服务中⼿动停⽌该服务以后,过了⼀段时间,服务⼜⾃动运⾏了。

虽然,从⽤户的⾓度来说,这种⽅式⽐较流氓。

但是,从程序员的⾓度来说,这是如何做到的呢?经过研究,我发现有⼀种⽅式是可以实现的。

下⾯就和⼤家分享。

先简单介绍,⼀会⼉会贴上全部代码。

这个⽐较简单,⽹上的资料够多,只要实现⼀个BroadcastReceiver,监听⼿机启动完成的事件ACTION_BOOT_COMPLETED即可。

需要注意的是,好像不能⽤模拟器,要⽤⼿机测试。

⼀般的,都会在上⾯说到的BroadcastReceiver的实现⾥⾯,监听⼿机启动完成后,启动⼀个Service,这是⼀般的做法。

问题是,⽤户能够在服务⾥看到这个Service是常驻的。

如果⽤户很敏感,就会停⽌该Service,甚⾄直接卸载掉相关的应⽤。

那么,怎样才能定期实现某功能,⼜不让⽤户直接看到这个Service呢?聪明的你⼀定⽴即就想到了,如果不直接启动Service,⽽是启动⼀个timmer,或者alarmManager,然后每隔⼀段时间去启动Service,做完事情以后关闭掉Service就可以了。

还是看下⾯的全部代码吧,不过多解释了。

这些代码中还是有不少概念的,不熟悉AlarmManager、PendingIntent、BroadcastReceiver、Service等等这些概念的同学可以百度⼀下。

复制代码代码如下:package com.arui.framework.android.daemonservice;import android.app.AlarmManager;import android.app.PendingIntent;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.SystemClock;public class BootBroadcast extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent mintent) {if (Intent.ACTION_BOOT_COMPLETED.equals(mintent.getAction())) {// 启动完成Intent intent = new Intent(context, Alarmreceiver.class);intent.setAction("arui.alarm.action");PendingIntent sender = PendingIntent.getBroadcast(context, 0,intent, 0);long firstime = SystemClock.elapsedRealtime();AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);// 10秒⼀个周期,不停的发送⼴播am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstime,10 * 1000, sender);}}}复制代码代码如下:package com.arui.framework.android.daemonservice;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class Alarmreceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {if (intent.getAction().equals("arui.alarm.action")) {Intent i = new Intent();i.setClass(context, DaemonService.class);// 启动service// 多次调⽤startService并不会启动多个service ⽽是会多次调⽤onStartcontext.startService(i);}}}复制代码代码如下:package com.arui.framework.android.daemonservice;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.util.Log;public class DaemonService extends Service {@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {super.onCreate();Log.v("=========", "***** DaemonService *****: onCreate");}@Overridepublic void onStart(Intent intent, int startId) {Log.v("=========", "***** DaemonService *****: onStart");// 这⾥可以做Service该做的事}}下⾯是manifest⽂件的代码。

安卓手机开机自动加载Swapper教程

安卓手机开机自动加载Swapper教程

安卓手机开机自动加载Swapper教程
swp是什么小编在这里就不再强调了,简单明了的用一句话来说就是虚拟内存转化啦,把内存卡上的分区用来增加运行内存,提高手机运行流畅度。

这个教程是为网友整理分享安卓手机的开机自动加载Swapper的教程,无需手动加载。

注:此方法只适合手机TF卡里有分区的,也就是说是通过读卡器分区的
1、用RootExplorer,在/date下面建立一个opt的文件夹,把自动加载脚本放进去,文件名必须是autostart.sh。

2、拷贝后的完整路径应该是/data/opt/autostart.sh ,在该文件长按不放,弹出菜单,选择权限,给autostart.sh所有的权限(就是把要打勾的地方全部打勾),再单击,选择运行,就会出现3排小英文。

3、安装autostart(root),这个软件(立即下载)安装后,在系统里面没有图标,重启一次会运行,需要root权限,确定就可以了,在autostarts里面你还能看到启动加载项目有a utostart(root),图标是一个B
4、打开SWAP的程序,要点击开机自动运行,这个是必须要的,不然开机也不能自动加载,下面为截图
小编点评:
开启自动加载swap之后手机手机在运存上会增加很大一截,手机的运行速度也自然会快上许多。

不过要需要注意一下存储内存的释放,不然很可能会造成内存之间冲突让使用效果下降。

本文来源:安卓/news/571.html。

Android系统默认Home应用程序(Launcher)的启动过程源代码分析

Android系统默认Home应用程序(Launcher)的启动过程源代码分析

在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home 应用程序就是Launcher了,本文将详细分析Launcher应用程序的启动过程。

Android系统的Home应用程序Launcher是由ActivityManagerService启动的,而ActivityManagerService和PackageManagerService一样,都是在开机时由SystemServer组件启动的,SystemServer组件首先是启动ePackageManagerServic,由它来负责安装系统的应用程序,具体可以参考前面一篇文章Android应用程序安装过程源代码分析,系统中的应用程序安装好了以后,SystemServer 组件接下来就要通过ActivityManagerService来启动Home应用程序Launcher了,Launcher在启动的时候便会通过PackageManagerServic把系统中已经安装好的应用程序以快捷图标的形式展示在桌面上,这样用户就可以使用这些应用程序了,整个过程如下图所示:点击查看大图下面详细分析每一个步骤。

Step 1. SystemServer.main这个函数定义在frameworks/base/services/java/com/android/server/SystemServer.java文件中,具体可以参考前面一篇文章Android应用程序安装过程源代码分析的Step 1。

Step 2. SystemServer.init1这个函数是一个JNI方法,实现在 frameworks/base/services/jni/com_android_server_SystemServer.cpp文件中,具体可以参考前面一篇文章Android应用程序安装过程源代码分析的Step 2。

Android Service如何开机自启动以及自启动失败原因

Android Service如何开机自启动以及自启动失败原因

Android Service如何开机自启动以及自启动失败原因本文主要介绍Android Service如何开机自启动、自启动失败的原因、adb命令发送BOOT_COMPLETED。

应用程序是否可以在安装后自启动,没有ui的纯service应用如何启动?1、Android应用如何开机自启动(1)、在AndroidManifest.xml中注册AndroidManifest.xml中注册BOOT_COMPLETED Action注意不仅要添加android.intent.action.BOOT_COMPLETED对应的action,还需要添加对应的uses-permission(2)、Receiver接收广播进行处理public class BootBroadcastReceiver extends BroadcastReceiver {public static final String TAG = "BootBroadcastReceiver";@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction().toString();if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {// u can start your service hereToast.makeText(context, "boot completed action has got", Toast.LENGTH_LONG).show();return;}}}2、自启动失败的原因接收不到BOOT_COMPLETED广播可能的原因(1)、BOOT_COMPLETED对应的action和uses-permission没有一起添加(2)、应用安装到了sd卡内,安装在sd卡内的应用是收不到BOOT_COMPLETED广播的(3)、系统开启了Fast Boot模式,这种模式下系统启动并不会发送BOOT_COMPLETED广播(4)、应用程序安装后重来没有启动过,这种情况下应用程序接收不到任何广播,包括BOOT_COMPLETED、ACTION_PACKAGE_ADDED、CONNECTIVITY_ACTION等等。

android开机启动流程简单分析

android开机启动流程简单分析

android开机启动流程简单分析android启动当引导程序启动Linux内核后,会加载各种驱动和数据结构,当有了驱动以后,开始启动Android系统同时会加载用户级别的第一个进程init(system\core\init\init.cpp)代码如下:int main(int argc, char** argv) {.....//创建文件夹,挂载// Get the basic filesystem setup we need put together in the initramdisk// on / and then we'll let the rc file figure out the rest.if (is_first_stage) {mount("tmpfs", "/dev", "tmpfs", MS_NOSUID, "mode=0755");mkdir("/dev/pts", 0755);mkdir("/dev/socket", 0755);mount("devpts", "/dev/pts", "devpts", 0, NULL);#define MAKE_STR(x) __STRING(x)mount("proc", "/proc", "proc", 0, "hidepid=2,gid=" MAKE_STR(AID_READPROC));mount("sysfs", "/sys", "sysfs", 0, NULL);}.....//打印日志,设置log的级别klog_init();klog_set_level(KLOG_NOTICE_LEVEL);.....Parser& parser = Parser::GetInstance();parser.AddSectionParser("service",std::make_unique<ServiceParser>());parser.AddSectionParser("on", std::make_unique<ActionParser>());parser.AddSectionParser("import", std::make_unique<ImportParser>());// 加载init.rc配置文件parser.ParseConfig("/init.rc");}加载init.rc文件,会启动一个Zygote进程,此进程是Android系统的一个母进程,用来启动Android的其他服务进程,代码:从Android L开始,在/system/core/rootdir 目录中有4 个zygote 相关的启动脚本如下图:在init.rc文件中,有如下代码:import /init.environ.rcimport /b.rcimport /init.${ro.hardware}.rcimport /b.configfs.rcimport /init.${ro.zygote}.rc注意到上面的代码import /init.${ro.zygote}.rc,这里会读取ro.zygote这个属性,导入相应的init.rc文件。

Android修改开关机动画声音

Android修改开关机动画声音

开机画面,按照国际惯例,一般是分为2屏,当然也有3屏的说法,不管怎样,我这里说得就是最后的一屏,按照bootanimation的字面意思翻译,大概也就是开机动画的意思,那这就不说第几屏了,直接用“开机动画”这词。

首先,开机动画的地址:system\media\bootanimation.zip。

要修改开机动画就是修改bootanimation这个文件。

如果说你的手机里没有这个文件,那就是说明你用的是官方原始版本的rom,开机动画没有被修改过,但这不碍事,没有就放一个进去,到时候想换回最原始的开机画面,也可以把bootanimation这个文件删了。

官方最原始的开机动画在system\ framework\framework-res.apk\assets\images里面,里面主要是2张图片,高手面可以去研究一下,说不定通过这个文件可以用代码实现动画的过程。

接下来,说说bootanimation.zip这个文件的结构。

bootanimation里面主要包含一个desc.txt以及N个文件夹。

而文件夹里面放着的就是你要的开机动画的图片。

decs.txt的作用就是指导系统如何去执行你的开机画面。

下面继续说说desc.txt这个文档要怎么写。

先看例子,如果我的开机动画要用到2个文件夹,分别是part1和part2,。

我希望开机的时候,先把part1里面的图片都播放一遍,然后再循环播放part2里面的文件,直到进入系统。

那么decs.txt文档的内容应该如下:302 480 5p 1 0 part1p 0 0 part2就这么多,现在解释一下这些命令吧。

第一行,320 480是代表你屏幕的分辨率,因为我们的胖6是320*480的,这就不多说了。

后面的5是说,5帧每秒,不懂的可以这么理解,5是代表一秒钟播放5张图片。

就这么简单。

第二行,p 1 0 part1。

p应该是play吧,也就是播放的意思。

1是播放一次。

Android电视app开机自启

Android电视app开机自启

Android电视App开机自启1.1开发工具Androidstudio.1.2需求Android电视开机自动启动App程序1.3步骤(1)创建BootBroadcastReceiver类继承BroadcastReceiver(广播)(2)清单文件Manifest的application下配置要监听的广播<receiver android:name=".BootBroadcastReceiver"><intent-filter><action android:name="ApkChanged"></action></intent-filter>(3)清单文件Manifest配置开机启动权限<uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"/> (4)监听广播,并判断让其只启动一次private static boolean mStatus= false;public void onReceive(Context context, Intent intent) {String action = intent.getAction();if (action.equals("ApkChanged")) {if (!mStatus) {mStatus= true;starUp(context);}}}(5)设置开机启动方法有两种任选一种private void starUp(Context context) {(第一种通过应用程序包名来启动)Intent mMainActivityIntent = context.getPackageManager(). getLaunchIntentForPackage(context.getPackageName());context.startActivity(mMainActivityIntent);(第二种直接跳转进入到应用首页)IntentmMainActivityIntent = new Intent(context,MainActivity.class);mMainActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(mMainActivityIntent);}。

Android开机自动启动app

Android开机自动启动app

项目需要android开机自动启动一个app的界面,网上找了些资料,证实可用:首先是在你要启动的app的AndroidManifest.xml文件里面加下面一段代码(注意是加在application标签内):<receiver android:enabled="true"android:name=".BootUpReceiver"android:permission="android.permission.RECEIVE_BOOT_COMPLETED"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED "/><category android:name="android.intent.category.DEFAULT"/> </intent-filter></receiver><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLET ED"/>之后在项目里面创建一个BootUpReceiver的类(MyActivity是你自己的app的main activity):public class BootUpReceiver extends BroadcastReceiver{public void onReceive(Context context, Intent intent) {Intent i = new Intent(context, MyActivity.class);i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);}}之后编译运行,再启动系统的时候,app就可以在系统启动完成之后自动运行啦。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档