Android 触发安卓手机短信报警
主席先生,我想在用户收到包含特定关键字的短信时触发警报,然后向用户提供alertdialog,以使用预定义消息回复。在我的代码中,我似乎无法让闹钟工作。它只显示alertdialog。此外,如果可能的话,我想使用手机的默认闹钟,即使在静音模式下也会将其设置为关闭。我想用闹钟代替收到的短信铃声。请帮帮我。提前谢谢Android 触发安卓手机短信报警,android,sms,Android,Sms,主席先生,我想在用户收到包含特定关键字的短信时触发警报,然后向用户提供alertdialog,以使用预定义消息回复。在我的代码中,我似乎无法让闹钟工作。它只显示alertdialog。此外,如果可能的话,我想使用手机的默认闹钟,即使在静音模式下也会将其设置为关闭。我想用闹钟代替收到的短信铃声。请帮帮我。提前谢谢 public class EAlarmReceiver extends BroadcastReceiver { public static String sender; public
public class EAlarmReceiver extends BroadcastReceiver {
public static String sender;
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Bundle bundle = intent.getExtras();
Object[] pdusObj = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdusObj.length];
for (int i = 0; i<pdusObj.length; i++)
{
messages[i] = SmsMessage.createFromPdu ((byte[])
pdusObj[i]);
sender = messages[i].getOriginatingAddress();
}
for (SmsMessage msg : messages) {
if (msg.getMessageBody().contains("firealert")) {
Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(300);
Uri alert = RingtoneManager
.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
MediaPlayer mMediaPlayer = new MediaPlayer();
try {
mMediaPlayer.setDataSource(context, alert);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, maxVolume,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0)
{
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
mMediaPlayer.setLooping(false);
//mMediaPlayer.prepare();
mMediaPlayer.start();
Toast.makeText(context.getApplicationContext(), "alarm started", Toast.LENGTH_LONG).show();
}//end if
Intent openInterface = new Intent("proj.receiver.RECEIVERINTERFACE");
openInterface.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(openInterface);
}//end if
}//end for
}// end onreceive
公共类EAlarmReceiver扩展了BroadcastReceiver{
公共静态字符串发送器;
公共void onReceive(上下文、意图){
//TODO自动生成的方法存根
Bundle=intent.getExtras();
Object[]pdusObj=(Object[])bundle.get(“pdus”);
SmsMessage[]messages=新SmsMessage[pdusObj.length];
对于(int i=0;i@PaulR:在我看来像Android。好的-谢谢-我现在会添加一个Android
标签,如果它是错误的,其他人可以稍后更正。。。