Android 实现开机自启动无界面的Apk

我们有时候会遇到这样的需求,需要将一个apk作为一个后台程序为第三方应用提供服务。开发这样的apk我们会遇到两个问题:

1、apk不需要界面。
2、由于apk没有界面,我们需要启动运行,就需要实现开机自启动。

1、我们先来看看如何实现一个无界面的apk.

大家都知道,我们新建一个应用,默认都是有Activity的,如果把默认的Activity去掉会报错。那么我们可以这样修改:打开manifest文件,把默认的category注释掉

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
         <!--<category android:name="android.intent.category.LAUNCHER" />-->
    </intent-filter>
</activity>

并且把Launch Options 设置为Nothing,如下图所示:


这样运行程序之后在Launcher界面就看不见我们的应用图标了。

2、开机应用自启动的实现:首先,我们需要在manifest文件中注册相应的权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
接着我们实现一个广播接收器代码如下:

public class BootReceiver extends BroadcastReceiver {
    public BootReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        //后边的XXX.class就是要启动的服务
        Intent service = new Intent(context,ReadSNService.class);
        context.startService(service);
        Log.v("TAG", "开机自动服务自动启动.....");
    }
}
在manifest文件中添加监听开机的action:

<receiver android:name=".BootReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"></action>
    </intent-filter>
</receiver>

配置好之后,运行我们的程序,安装成功之后可以在设置里面看到我们apk,这样,我们就实现了一个无界面的后台程序,我们可以根据业务需求,在MainActity里面启动一个服务来实现我们具体的功能。



  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值