android开机自启动

很多时候为了用户使用方便,我们需要在移动设备开机时设置一些随机自启动服务,如定期发送自己关心的讯息、新收邮件的自动推送以及语音唤醒及识别等等,这些服务在日常生活中还是很有意义的。

对于注册并开启自动启动的代码也是比较简单的,百度可以在很多网站上找到实例,现把我自己在项目中使用到的代码贴在下面:

public class OnBootReceiver extends BroadcastReceiver {
    
    private static final String TAG = "SmartService";
    
    @Override
    public void onReceive(Context context, Intent intent) {
        
        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
            
            // 开启应用
            Intent sintent = context.getPackageManager().getLaunchIntentForPackage( "app应用包名" );
            context.startActivity( sintent );
            
            // 开启服务代码
            //context.startService( new Intent(context, ServerService.class) );
            Log.e(TAG, "Brodcast received!!!");
        }
    }
}

相应地,我们需要在AndroidManifest.xml文件中加入权限设置和启动注册,如下:

// 权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

// 注册广播接收器,设置过滤器
<receiver android:name="app应用包名.OnBootReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</receiver>

将上述代码加入项目中即可以实现开机自动启动?如果是的话,你就真的太幸运了。笔者在小米手机上试过很多次,这样做是基本实现不了手机开机自动启动应用的,还必须在手机上作如下设置才行。

先从正在测试的app中退出,打开应用管理允许“开启WIFI”,再在自启动管理中允许需要开机启动的app,然后再打开app注册服务即可实现下次设备启动时自动启动,顺序最好严格按照这个过程来操作,因为笔者做过很多尝试都不一定能成功做到自动启动。

2016.09.06 补充:发现在注册Service之前先需要先使用Activityextends Activity进行注册,之后再改为extends Service 或者是直接命令 adb shell am startservice <Your package>/<Your Servce>启动Service

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,420评论 25 709
  • Android 设备启动的时候,会发送android.intent.action.BOOT_COMPLETED的广...
    sy1121阅读 14,089评论 1 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,159评论 19 139
  • 晚上,和孩他爹去遛娃,想顺便自己也去锻炼下。孩子一个人骑着滑板车往前滑,我们俩不远不近地跟着,闲聊。我说,突然发现...
    newjulie阅读 1,666评论 0 3
  • 我花一秒钟去喜欢一个人,却用了一辈子去忘记。 你总说我多愁善感,我无法辩驳,因为我确实如此,对你,我认输了。 时间...
    小木瑾儿阅读 1,819评论 0 3

友情链接更多精彩内容