2013-08-19 2 views
-1

У меня возникла проблема с отправкой смс.Как отправить смс в фоновом режиме в android

В моем заявлении я должен периодически отправлять sms с последней долготой и мощностью. При нажатии на кнопку отправки мне нужно отправить sms на предварительно сохраненные мобильные номера с обновленной длиной и долготой на каждые 10 минут для фиксированного количества раз (предположим 5 раз). Но ширина и долгота не обновляются часто, поэтому она отправляет одинаковые местоположение на все мобильные телефоны, даже когда мы меняем местоположение. Как мне это сделать. Любая идея или образец кода Пожалуйста.

Спасибо и привет:

+1

Почему бы вам не создать сервис, который отправляет ваш текущий длинный/лат? Отправка так много sms неэффективна. –

+0

Можете ли вы, пожалуйста, дать мне образец для этого? – Sri

+0

Нет. У вас должен быть сервер для получения информации от клиента. Это всего лишь простые почтовые данные на вашем сервере. –

ответ

0

Я не уверен, как вы пытаетесь реализовать я бы подошел, как это.

Использование Alarm Manager создает повторяющийся сигнал тревоги .. каждые 10 минут инициирует приемник широковещательной передачи и извлекает текущие данные о местоположении, передавая эти значения службе и из сервисов send mgs.

Для вашего refrence Примечание: это не полное решение вам нужно изменить в соответствии с вашими ТРЕБОВАНИЯМ

Ресивер:

public class AlarmReceiver extends BroadcastReceiver { 
    public void onReceive(Context context, Intent intent) { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    Intent intent=new Intent(context,Service.class); 
    //get lat/lng and pass it or get from service if u want 
    intent.putExtra("lat","lat"); 
    intent.putExtra("lon","lng"); 
    context.startService(intent); 

} 
    } 

    public void SetAlarm(Context context) { 

     AlarmManager am = (AlarmManager) context 
       .getSystemService(Context.ALARM_SERVICE); 
     Intent i = new Intent(context, AlarmReceiver.class); 
     PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0); 
     Calendar calendar = Calendar.getInstance(); 

      calendar.setTimeInMillis(System.currentTimeMillis()); 

      calendar.add(Calendar.MINUTE, 10); 
      am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 
       calendar.getTimeInMillis(), pi); 
    } 

} 

Услуги:

import android.app.Service; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.IBinder; 
import android.telephony.SmsManager; 
import android.widget.Toast; 

public class YourService extends Service { 


@Override 
public void onCreate() { 

} 

@Override 
public IBinder onBind(Intent arg0) { 
    return null; 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
} 

@Override 
public void onStart(Intent intent, int startId) { 
    super.onStart(intent, startId); 
    String data=intent.getStringExtra("lat"); 
    String data=intent.getStringExtra("lng"); 

    //or get the lat/lng here a 
    SmsManager smsManager = SmsManager.getDefault(); 
    smsManager.sendTextMessage(number to send , null, text, null, null); 
} 

@Override 
public boolean onUnbind(Intent intent) { 

} 

} 
+0

Не могли бы вы разместить образец для этого. Как я могу это сделать? – Sri

+0

отредактировал проверку, что ответьте на ее не полную реализацию, вам нужно создать что-то подобное ... и не забывайте, что требуемые разрешения, приемник и служба в файле манифеста –

-1

Sample

editBtn.setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     // TODO Auto-generated method stub 

     changeEdit(); 
     return true; 
    } 
}); 
Смежные вопросы