public static void sendSms(final Context context) {
Log.v(CRDAlarmReceiver.class.getName(), "sendSms() => Sending SMS...");
CRDSharedPreferences.getInstance(context).setSendingSmsEpoch();
final TelephonyManager telephonyManager = (TelephonyManager) context.getApplicationContext().getSystemService(TELEPHONY_SERVICE);
final PhoneStateListener phoneStateListener = new PhoneStateListener() {
// Fired when the service state changes or immediately after registration via .listen()
@Override
public void onServiceStateChanged(ServiceState serviceState) {
super.onServiceStateChanged(serviceState);
String serviceStateDebug;
switch (serviceState.getState()) {
case ServiceState.STATE_IN_SERVICE:
serviceStateDebug = "STATE_IN_SERVICE";
break;
case ServiceState.STATE_OUT_OF_SERVICE:
serviceStateDebug = "OUT_OF_SERVICE";
break;
case ServiceState.STATE_EMERGENCY_ONLY:
serviceStateDebug = "EMERGENCY_ONLY";
break;
case ServiceState.STATE_POWER_OFF:
serviceStateDebug = "POWER_OFF";
break;
default:
serviceStateDebug = "OTHER";
break;
}
Log.v(CRDAlarmReceiver.class.getName(), "onServiceStateChanged() => " + "serviceState = [" + serviceStateDebug + "]");
if (serviceState.getState() == ServiceState.STATE_IN_SERVICE) {
CRDUtils.sendSmsToOrange(context);
telephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
}
}
};
// We can't simply have the current state of the network. We have to register to its changes, then it will fire
// immediately after the registration an event with the initial state. Super retarded imo.
telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE);
}
CRDAlarmReceiver.java 文件源码
java
阅读 18
收藏 0
点赞 0
评论 0
项目:CineReminDay
作者:
评论列表
文章目录