【android】利用service监听来电或来信息

来源:互联网 发布:淘宝介入对卖家的影响 编辑:程序博客网 时间:2024/05/03 13:43
写这个东西只是为了练手,拍砖随意。反正自己也是菜鸟。 
微信/QQ在退出主界面之后还是会一直监听消息。如何实现呢? 
一下做的测试,监听为用户的新信息。 
首先:建立主程序界面 
Java代码  收藏代码
  1. <Button  
  2.     android:id="@+id/button1"  
  3.     android:layout_width="wrap_content"  
  4.     android:layout_height="wrap_content"  
  5.     android:text="start" />  
  6.   
  7. <Button  
  8.     android:id="@+id/button2"  
  9.     android:layout_width="wrap_content"  
  10.     android:layout_height="wrap_content"  
  11.     android:text="stop" />  

两个button。 

其次:绑定监听事件 
Java代码  收藏代码
  1. start.setOnClickListener(new OnClickListener() {  
  2.               
  3.             @Override  
  4.             public void onClick(View v) {  
  5.                 // TODO Auto-generated method stub  
  6.                 System.out.println("ooooo");  
  7.                 startService(new Intent("com.duduli.li.My"));  
  8.             }  
  9.         });  
  10.           
  11.         stop.setOnClickListener(new OnClickListener() {  
  12.               
  13.             @Override  
  14.             public void onClick(View v) {  
  15.                 // TODO Auto-generated method stub  
  16.                 stopService(new Intent("com.duduli.li.My"));  
  17.             }  
  18.         });  

这里的intent需要在manifest中进行注册。 

Java代码  收藏代码
  1. <service android:name=".Myservice">  
  2.     <intent-filter>  
  3.         <action android:name="com.duduli.li.My"/>  
  4.         <category android:name="android.intent.category.DEFAULT"/>  
  5.     </intent-filter>  
  6. </service>  

service类方法: 
Java代码  收藏代码
  1. public class Myservice extends Service{  
  2.     @Override  
  3.     public IBinder onBind(Intent intent) {  
  4.         // TODO Auto-generated method stub  
  5.         System.out.println("on bind");  
  6.         return null;  
  7.     }  
  8.   
  9.     @Override  
  10.     public void onCreate() {  
  11.         // TODO Auto-generated method stub  
  12.         super.onCreate();  
  13.         System.out.println("on create");  
  14.           
  15.     }  
  16.   
  17.     @Override  
  18.     public void onStart(Intent intent, int startId) {  
  19.         // TODO Auto-generated method stub  
  20.         super.onStart(intent, startId);  
  21.         System.out.println("on start");  
  22.           
  23.         new Test();  
  24.     }  
  25.   
  26.   
  27. }  


onstart方法中有个Test的实力,这个实力就是一个BroadcastReceiver用来监听来电或来信息。 
Java代码  收藏代码
  1. public class Test extends BroadcastReceiver {  
  2.       
  3.     @Override  
  4.     public void onReceive(Context context, Intent intent) {  
  5.         // TODO Auto-generated method stub  
  6.         if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){  
  7.                         System.out.println(System.currentTimeMillis());  
  8.             System.out.println("broadcast begin");  
  9.         }  
  10.     }  
  11.   
  12. }  




这个broadcastreceiver也需要在manifest中进行注册/ 
Java代码  收藏代码
  1. <receiver android:name=".Test">  
  2.     <intent-filter>  
  3.         <action android:name="android.provider.Telephony.SMS_RECEIVED"/>  
  4.     </intent-filter>  
  5. </receiver>  


action对应的就是收到新信息。 
 

 







 
0 0
原创粉丝点击