2012-12-03 11 views
6

android acemi değilim. İki sınıf var ve birinci sınıfandroid bir hizmet olmadan hizmete başlamak nasıl

public class SmsReceiver extends BroadcastReceiver{} 

Ve ikinci sınıf

public class SMS extends Activity{} 

Bunu yapmak istediğim: Ben bir SMS aldığımda, etkinlik başlatma ve bir şeyler yapmak. Ama "etkinlik" yerine "hizmet" kullanmak istiyorum. Uygulama başladığında, daha sonra aktivite olmadan hizmete başlamak demek.

Bu mümkün mü?

+0

üzerinden servis ve yayın alıcısı –

cevap

3

Hizmetinizi SmsReceiver olarak başlatın:

public class SmsReceiver extends BroadcastReceiver{ 
@Override 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 
     if(action.equals("android.provider.Telephony.SMS_RECEIVED")){ 
     //action for sms received 

      // start service here 
      Intent intent=new Intent(context,Your_Service.class); 
      context.startService(intent); 

     } 
     else { 

     }  
    } 
} 

ve siz AndroidManifest.xml da hizmet kayıtlı emin olun: AndroidManifest aslında yaklaşık

<service android:name="com.xxx.xx.Your_Service" /> 
+0

tarafından hizmet satrt için etkinlik sınıf genişletmek zorunda, not teşekkür ederim bana oldukça yardımcı oldu. –

1

Evet, bunu Uygulama Boots'inizde Hizmetinizi çağıran bir BroadCastReceiver oluşturarak yapabilirsiniz. İşte bana verilen tam bir cevap. Android - Start service on boot

Eğer size Uygulama için herhangi bir simge/başlatıcısı da, sadece normalde ilan olarak Sadece Servis beyan

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

ile herhangi Aktivite oluşturmadığından emin yapabilirsiniz istemiyorsanız. Bir sms var

0

Eğer

@Override 
public void onReceive(Context context, Intent intent) { 

     try { 

      context.startService(new Intent(context, 
        YourService.class)); 
     } catch (Exception e) { 
      Log.d("Unable to start ", "Service on "); 
     } 

yayın alıcı tarafından hizmetinizi başlatın ve lütfen siz AndroidManifest.xml dosyasına

<uses-permission android:name="android.permission.RECEIVE_SMS"> 

ve sms için

gönderme izni söz var sağlayabiliriz ve bu eğitime göz atabilirsiniz Bu eğiticiye göz atabilirsiniz Sending sms in android

İlgili konular