NotificationManager manager =
(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
用support-v4库提供的NotificationCompat类来创建Notification对象,确保了兼容性。
创建一个丰富的Notification对象,setContentTitle设置标题,setContentText设置内容,setWhen用于指定通知被创建的时间。使用Build方法进行生成。
Notification notification = new NotificationCompat.Builder(this)
.setContentTitle("This is content title")
.setContentText("This is content text")
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
.build();
manager.notify(1, notification);
先构建Intent对象,pendingIntent式延迟执行的Intent,根须需求选择是使用getActivity还是getService。
Intent intent = new Intent(this,NotificationActivity.class);
PendingIntent pi = PendingIntent.getActivity(this,0,intent,0);
第一个参数是context,第二和第四个参数通常传入0就可以了。
NotificationManager manager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
manager.cancel(1);
Uri soundUri = Uri.fromFile(new File("/system/media/audio/ringtones/ Basic_tone.ogg"));
notification.sound = soundUri;
//下标为0的值表示手机静止的时长,下标为1的值表示手机振动的时长,下标为2的值又表示手机静止的时长,以此类推。
setVibrate(new long[]{0,1000,1000,1000}).build();
notification.vibrate = vibrates;
// LED 灯以绿色的灯光一闪一闪的效果
notification.ledARGB = Color.GREEN;
notification.ledOnMS = 1000;
notification.ledOffMS = 1000;
notification.flags =
Notification.FLAG_SHOW_LIGHTS;
class MessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Object[] pdus = (Object[]) bundle.get("pdus"); // 提取短信消息
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
String address = messages[0].getOriginatingAddress(); // 获取发送方号码
String fullMessage = "";
for (SmsMessage message : messages) {
fullMessage += message.getMessageBody(); // 获取短信内容
}
sender.setText(address); content.setText(fullMessage);
}
}
我们从 Intent 参数中取出了一个 Bundle 对象,然后使用 pdu 密钥来提取一个 SMS pdus 数组, 其中每一个 pdu 都表示一条短信消息。接着使用 SmsMessage 的
createFromPdu() 方法将每一个 pdu 字节数组转换为 SmsMessage 对象, 调用这个对象的
getOriginatingAddress()方法就可以获取到短信的发送方号码,调用 getMessageBody()方法就可以获取到短信的内容,然后将每一个 SmsMessage 对象中的短信内容拼接起来,就组成了一条完整的短信。
receiveFilter = new IntentFilter();
receiveFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
messageReceiver = new MessageReceiver();
registerReceiver(messageReceiver, receiveFilter);
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(to.getText().toString(),
null,msgInput.getText().toString(), null, null);
sendTextMessage()方法接收五个参数,其中第一个参数用于指定接收人的手 机号码,第三个参数用于指定短信的内容
sendFilter = new IntentFilter();
sendFilter.addAction("SENT_SMS_ACTION");
sendStatusReceiver = new SendStatusReceiver();
registerReceiver(sendStatusReceiver, sendFilter);
send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SmsManager smsManager =
SmsManager.getDefault();
Intent sentIntent = new Intent("SENT_SMS_ACTION");
PendingIntent pi = PendingIntent.getBroadcast (MainActivity.this, 0, sentIntent, 0);
smsManager.sendTextMessage(to.getText().toString(), null,msgInput.getText().toString(), pi, null);
}
});
class SendStatusReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (getResultCode() == RESULT_OK) {
// 短信发送成功
Toast.makeText(context, "Send succeeded", Toast.LENGTH_LONG).show();
} else {
// 短信发送失败
Toast.makeText(context, "Send failed", Toast.LENGTH_LONG).show();
}
}
}
方法名 | 功能描述 |
---|---|
setDataSource() | 设置要播放的音频文件的位置。 |
prepare() | 在开始播放之前调用这个方法完成准备工作。 |
start() | 开始或继续播放音频。 |
pause() | 暂停播放音频。 |
reset() | 将 MediaPlayer 对象重置到刚刚创建的状态。 |
seekTo() | 从指定的位置开始播放音频。 |
stop() | 停止播放音频。调用这个方法后的 MediaPlayer 对象无法再播放音频。 |
release() | 释放掉与 MediaPlayer 对象相关的资源。 |
isPlaying() | 判断当前 MediaPlayer 是否正在播放音频。 |
getDuration() | 获取载入的音频文件的时长。 |
首先需要创建出一个MediaPlayer 对象,然后调用 setDataSource()方法来设置音频文件的路径,再调用 prepare()方法使MediaPlayer 进入到准备状态,接下来调用start()方法就可以开始播放音频,调用pause() 方法就会暂停播放,调用 reset()方法就会停止播放。
方法名 | 功能描述 |
---|---|
setVideoPath() | 设置要播放的视频文件的位置。 |
start() | 开始或继续播放视频。 |
pause() | 暂停播放视频。 |
resume() | 将视频重头开始播放。 |
seekTo() | 从指定的位置开始播放视频。 |
isPlaying() | 判断当前是否正在播放视频。 |
getDuration() | 获取载入的视频文件的时长。 |