123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package com.jyc.threegames.activity;
- import android.app.Activity;
- import android.app.KeyguardManager;
- import android.content.Context;
- import android.content.Intent;
- import android.media.AudioManager;
- import android.media.Ringtone;
- import android.media.RingtoneManager;
- import android.net.Uri;
- import android.os.Build;
- import android.os.Bundle;
- import android.os.PersistableBundle;
- import android.util.Log;
- import android.view.WindowManager;
- import android.widget.TextView;
- import androidx.annotation.NonNull;
- import com.jyc.threegames.App;
- import com.jyc.threegames.R;
- import com.jyc.threegames.activity.base.BaseActivity;
- import butterknife.BindView;
- import butterknife.OnClick;
- public class AlertActivity extends BaseActivity {
- public static final String PARAM_TEXT = "text";
- @BindView(R.id.label)
- TextView mTVLabel;
- private String mText;
- private int mCurrentVolume = 0;
- private Ringtone mRingTone;
- @Override
- protected void init(Bundle instance) {
- super.init(instance);
- if (instance == null)
- mText = getIntent().getStringExtra(PARAM_TEXT);
- else
- mText = instance.getString(PARAM_TEXT);
- mTVLabel.setText(mText);
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1)
- setTurnScreenOn(true);
- if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
- keyguardManager.requestDismissKeyguard(this, null);
- }
- maxVolume();
- playRing();
- App.CAN_PLAY_GAME = false;
- }
- @Override
- protected void onDestroy() {
- App.CAN_PLAY_GAME = true;
- stopPlay();
- restoreVolume();
- super.onDestroy();
- }
- @Override
- protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
- super.onRestoreInstanceState(savedInstanceState);
- mText = savedInstanceState.getString(PARAM_TEXT);
- }
- @Override
- protected void onSaveInstanceState(@NonNull Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putString(PARAM_TEXT, mText);
- }
- @Override
- protected int getRootLayout() {
- return R.layout.activity_alert;
- }
- @OnClick(R.id.sure)
- public void clickSure(){
- finish();
- }
- private void playRing(){
- try {
- Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
- mRingTone = RingtoneManager.getRingtone(this, notification);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
- mRingTone.setLooping(true);
- mRingTone.play();
- } catch (Exception e) {
- e.printStackTrace();
- Log.e("three_games", "播放鈴聲失敗");
- }
- }
- private void maxVolume(){
- mCurrentVolume = getAudioManager().getStreamVolume(AudioManager.STREAM_ALARM);
- getAudioManager().setStreamVolume(AudioManager.STREAM_ALARM, getAudioManager().getStreamMaxVolume(AudioManager.STREAM_ALARM), 0);
- }
- private void restoreVolume(){
- getAudioManager().setStreamVolume(AudioManager.STREAM_ALARM, mCurrentVolume, 0);
- }
- private AudioManager getAudioManager(){
- return (AudioManager) getSystemService(Context.AUDIO_SERVICE);
- }
- private void stopPlay(){
- if (mRingTone != null && mRingTone.isPlaying()){
- mRingTone.stop();
- }
- }
- public static void LAUNCH(Context activity, String text){
- Intent intent = new Intent(activity, AlertActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.putExtra(PARAM_TEXT, text);
- activity.startActivity(intent);
- }
- }
|