见 BaseNotifyFragment :
震动权限:
<uses-permission android:name="android.permission.VIBRATE" />
代码如下:
public abstract class BaseNotifyFragment extends BaseFragment {
private Vibrator mVibrator;
private Ringtone mRingtone;
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// 初始化震动通知
if (isInitVibratorNotify()) {
mVibrator = (Vibrator) mActivity.getSystemService(Service.VIBRATOR_SERVICE);
}
if (isInitRingNotify()) {
Uri notifyUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
mRingtone = RingtoneManager.getRingtone(mContext, notifyUri);
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
if (mVibrator != null) {
mVibrator.cancel();
}
if (mRingtone != null && mRingtone.isPlaying()) {
mRingtone.stop();
}
}
/**
* 震动通知
*/
protected void notifyVibrator() {
if (mVibrator != null) {
// 震动 1s
mVibrator.vibrate(1000);
}
}
/**
* 声音通知
*/
protected void notifyRing() {
if (mRingtone != null) {
mRingtone.play();
}
}
/**
* 是否打开震动
*
* @return 震动
*/
protected boolean isInitVibratorNotify() {
return false;
}
/**
* 是否打开声音提醒
*
* @return 声音
*/
protected boolean isInitRingNotify() {
return false;
}
}