배터리 레벨이 Service
에서 특정 값에 도달하면 SMS을 보내려고합니다. 어떤 오류도 발생하지 않지만 SMS을 보내지 않았습니다.Android 서비스에서 SMS를 보내시겠습니까?
내 코드 :
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.IBinder;
import android.telephony.SmsManager;
import android.util.Log;
import android.widget.Toast;
public class BatteryStatus extends Service {
int scale = -1;
int level = -1;
int voltage = -1;
int temp = -1;
String batteryNumber = "";
String moderate=" Battery Level is 50 ";
String low = "Battery Level is low. Need to be charged immediately";
public IBinder onBind(Intent intent) {
return null;
}
public void onCreate() {
super.onCreate();
Toast.makeText(getApplicationContext(),"Service Running", Toast.LENGTH_SHORT).show();
//BATTERY STATUS
BroadcastReceiver batteryReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
Log.e("BatteryManager", "level is "+level+"/"+scale+", temp is "+temp+", voltage is "+voltage);
Log.e("NumberBattery ", "Number is "+batteryNumber);
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryReceiver, filter);
if(batteryNumber!=null && level==49){
SmsManager bat = SmsManager.getDefault();
bat.sendTextMessage(batteryNumber,null,moderate,null,null);
}else if(batteryNumber!=null && level==20){
SmsManager bat = SmsManager.getDefault();
bat.sendTextMessage(batteryNumber, null,low, null, null);
}
}
}
는 로그 캣 :
03-09 03:41:40.390: E/BatteryManager(11086): level is 49/100, temp is 321, voltage is 7574
03-09 03:41:40.390: E/NumberBattery(11086): Number is
당신은 그녀의 잘못이 무엇인지 알려 주시기 바랍니다 수 있습니까?
권자, 당신은 당신의 자신의 코드를 ...'이해하지 못하는 (batteryNumber = 널 (null) && 수준 == 49!)'에서 onCreate – Selvin
한 번만 호출되는 경우 SMS를 보내는 코드는 BroadcastReceiver 안에 있어야합니다. 여기서 로그를 인쇄합니다. – zapl