android项目 之 来电管家(8) ----- 添加开机自启动监听服务

         现在大多数的应用都会开机自启动,来电管家更是如此,添加了开机自启动监听服务后,开机后即使你没有打开来电管家应用程序,一样可以拦截来电信息。

       

      开机自启动Activity或Service的方法:

         主要步骤:

                     1.  要有开机要启动的service或activity(这里开机要启动的当然就是ListenService了)

                     2. 编写一个BroadcastReceiver用以捕获ACTION_BOOT_COMPLETED这条广播,并在捕获之后启动我们要启动的Activity或service。

       BootCompletedReceiver.java             

package com.example.callmanager;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;

public class BootCompletedReceiver extends BroadcastReceiver {
	SharedPreferences spf;
	@Override
	public void onReceive(Context context, Intent intent) {
		
		if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
			 spf = context.getSharedPreferences("setting", Activity.MODE_PRIVATE);
			 Intent newIntent = new Intent("com.example.callmanager.ListenService");
			 
			 newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  //注意,必须添加这个标记,否则启动会失败 
			 System.out.println("start by broadcast");
			 if(spf.getBoolean("isStartListen", false))
				 context.startService(newIntent);  
			
		}      
		 
	}

}

               这里同样取出了用户的设置信息,如果用户未启用监听服务,则开机不自启动监听服务,更加人性化。

             

            3.  在AndroidManifest.xml配置文件中注册我们的BroadcastReceiver

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

         4.   在AndroidManifest.xml配置文件中添加允许我们捕获该广播的权限

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

     

            这样,通过以上四个步骤,就可实现Activity或Service的开机自启动。

           至此,该来电管家的基本拦截功能,以及显示拦截信息,定时拦截,监听开关,拦截模式功能已全部实现,当然了,该应用还可以继续完善,如,将拦截记录添加通知栏,制作应用启动画面,添加手势滑动,添加短信拦截等更加丰富的功能。

           附:完整代码下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值