@Override
public void onReceive(Context context, Intent intent) {
mContext = context;
SmsMessage[] msgs = getMessagesFromIntent(intent);
String text = getSmsText(msgs);
Log.d("test", "MSG: " + text);
SmsParseResult result = parseSms(text);
// BerthStatus statusBefore = ParkingSystem.instance().getBerth(result.berthID).getStatus();
if (result.isForParkingSystem) {
// notify change
Log.d("test", "updateBerthStatus: " + result.berthID + " " + result.mStatus);
playStatusChangeMusic(context, result);
ParkingSystem.instance().updateBerthStatus(result.berthID, result.mStatus);
deleteFunctionSms();
if (isOrderedBroadcast()) {
abortBroadcast();
}
}
}
private void playStatusChangeMusic(Context context, SmsParseResult result)
{
int resID = 0;
if (result.mStatus == BerthStatus.uncheck || result.mStatus == BerthStatus.arrearage)
{
resID = R.raw.hooter;
}
else if(result.mStatus == BerthStatus.idle && (ParkingSystem.instance().getBerth(result.berthID).getStatus() == BerthStatus.uncheck
|| ParkingSystem.instance().getBerth(result.berthID).getStatus() == BerthStatus.arrearage))
{
resID = R.raw.alarm;
//new AlertDialog.Builder(context).setTitle("警报!警报!").setMessage("车位号:" + result.berthID + "未有效付款!请拦截!").setPositiveButton("确定", null).show();
}
else
{
resID = R.raw.mms;
}
MusicPlayer player = new MusicPlayer(context, resID);
player.start();
}
如上的代码,程序一执行到else if中的ParkingSystem.instance().getBerth(result.berthID).getStatus(),程序就崩溃。问题出在了哪里?谢谢解答!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货