나는 배터리 낮은 방송 수신기를 등록했습니다. 이안드로이드에 방송 수신기를 등록하십시오
import com.save.sharedpreference.SharedPreference;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsManager;
import android.widget.Toast;
public class BootReceiver extends BroadcastReceiver {
String user_phone_key = "phone_number";
int last_level = 0;
@Override
public void onReceive(Context context, Intent intent) {
int rlevel = intent.getIntExtra("level", -1);
int scale = intent.getIntExtra("scale", -1);
int level = -1;
if (rlevel >= 0 && scale > 0) {
level = (rlevel * 100)/scale;
}
if (level == 48 && last_level == level + 1) {
SharedPreference save_data = new SharedPreference(
context.getApplicationContext());
String phone = save_data.get_string(user_phone_key, null);
Toast.makeText(context, "Level Decrease", Toast.LENGTH_SHORT)
.show();
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phone, null,
"Your Battery level is less ", null, null);
} catch (Exception e) {
Toast.makeText(context.getApplicationContext(),
"SMS faild, please try again later!", Toast.LENGTH_LONG)
.show();
e.printStackTrace();
}
}
last_level = level + 1;
}
}
그것처럼 는 잘 작동하지만 내 배터리 잔량이 나를 보내기 시작 45 %는 45 %에서 배터리 레벨 변경 될 때까지 SMS를 도달 할 때 문제입니다. 내 배터리 레벨이 45 %에 도달하면 배터리 레벨이 45 % 일 때 단지 한 번만 SMS를 보내고 다시 기다리고 싶습니다. 가능합니까? 도움주세요.
답장을 보내 주셔서 감사합니다. 예. 배터리 임계 값을 사용자 입력으로 사용하고 배터리 수준이 정의 임계 값과 같을 때 사용자에게 경고하고 싶습니다. 이 작업을 수행하는 방법은 무엇입니까? – Bilal
예. 사용자의 입력을 얻을 수있는 방법이 필요하지만 45와 46을 alert_level 및 alert_level + 1로 바꿀 수 있습니다 ... –
사용자로부터 입력을 받고 45 %를 입력하는 것처럼 내 브로드 캐스트 수신기가 계속 전송하므로 배터리 잔량이 적음을 알려주는 메시지입니다. 에서 45 %로 변경됩니다. 어떻게 처리 할 수 있습니까? 메시지를 한 번에 받고 싶습니다. 배터리 잔량이 45 %가 될 때까지 다시 보류합니다. – Bilal