导航菜单

页面标题

页面副标题

Loan Locker v1.5 - AudioPlayingService.java 源代码

正在查看: Loan Locker v1.5 应用的 AudioPlayingService.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.user.a4keygen.services;

import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.Service;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.IBinder;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.util.Log;
import androidx.core.app.NotificationCompat;
import com.user.a4keygen.R;
import com.user.a4keygen.webutil.WebClientService;
import java.net.URLDecoder;

public class AudioPlayingService extends Service {
    private static final String CHANNEL_ID = "com.user.a4keygen";
    private static final int NOTIFICATION_ID = 1099;
    private static MediaPlayer alarmMediaPlayer;
    private AudioManager audioManager;
    private AudioManager.OnAudioFocusChangeListener focusChangeListener;
    private Vibrator vibrator;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        if (Build.VERSION.SDK_INT >= 26) {
            ((NotificationManager) getSystemService("notification")).createNotificationChannel(new NotificationChannel("com.user.a4keygen", getString(R.string.app_name), 4));
            startForeground(NOTIFICATION_ID, new NotificationCompat.Builder(this, "com.user.a4keygen").setContentTitle("EMI Reminder").setContentText("Playing reminder sound...").setSmallIcon(R.mipmap.ic_launcher).build());
        }
        this.vibrator = (Vibrator) getSystemService("vibrator");
    }

    @Override
    public int onStartCommand(Intent intent, int i, int i2) {
        if (intent == null || intent.getStringExtra("URL") == null) {
            return 1;
        }
        try {
            String decode = URLDecoder.decode(intent.getStringExtra("URL"), "UTF-8");
            Log.d("AudioPlayingService", "Decoded URL: " + decode);
            if (WebClientService.isInternetOn(getApplicationContext())) {
                playAudio(decode);
            } else {
                playLocalRawAudio();
            }
            return 1;
        } catch (Exception e) {
            Log.e("AudioPlayingService", "Error decoding URL", e);
            return 1;
        }
    }

    private void playAudio(String str) {
        try {
            setupAudioManager();
            AudioPlayingService$$ExternalSyntheticLambda0 audioPlayingService$$ExternalSyntheticLambda0 = new AudioManager.OnAudioFocusChangeListener() {
                @Override
                public final void onAudioFocusChange(int i) {
                    AudioPlayingService.lambda$playAudio$0(i);
                }
            };
            this.focusChangeListener = audioPlayingService$$ExternalSyntheticLambda0;
            if (this.audioManager.requestAudioFocus(audioPlayingService$$ExternalSyntheticLambda0, 3, 1) == 1) {
                stopAlarm();
                MediaPlayer mediaPlayer = new MediaPlayer();
                alarmMediaPlayer = mediaPlayer;
                mediaPlayer.setAudioStreamType(3);
                alarmMediaPlayer.setDataSource(str);
                alarmMediaPlayer.prepareAsync();
                alarmMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                    @Override
                    public final void onPrepared(MediaPlayer mediaPlayer2) {
                        AudioPlayingService.this.m303x2d12ad73(mediaPlayer2);
                    }
                });
                alarmMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                    @Override
                    public final void onCompletion(MediaPlayer mediaPlayer2) {
                        AudioPlayingService.this.m304x66dd4f52(mediaPlayer2);
                    }
                });
                alarmMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
                    @Override
                    public final boolean onError(MediaPlayer mediaPlayer2, int i, int i2) {
                        return AudioPlayingService.lambda$playAudio$3(mediaPlayer2, i, i2);
                    }
                });
            } else {
                Log.e("AudioPlayingService", "Failed to gain audio focus");
            }
        } catch (Exception e) {
            Log.e("AudioPlayingService", "Error in playAudio", e);
        }
    }

    static void lambda$playAudio$0(int i) {
        if (i == -1) {
            stopAlarm();
        }
    }

    public void m303x2d12ad73(MediaPlayer mediaPlayer) {
        alarmMediaPlayer.start();
        vibrateWhilePlaying();
        Log.d("AudioPlayingService", "Audio started from URL");
    }

    public void m304x66dd4f52(MediaPlayer mediaPlayer) {
        stopVibration();
    }

    static boolean lambda$playAudio$3(MediaPlayer mediaPlayer, int i, int i2) {
        Log.e("AudioPlayingService", "MediaPlayer error: " + i + ", " + i2);
        stopAlarm();
        return true;
    }

    private void playLocalRawAudio() {
        try {
            setupAudioManager();
            AudioPlayingService$$ExternalSyntheticLambda1 audioPlayingService$$ExternalSyntheticLambda1 = new AudioManager.OnAudioFocusChangeListener() {
                @Override
                public final void onAudioFocusChange(int i) {
                    AudioPlayingService.lambda$playLocalRawAudio$4(i);
                }
            };
            this.focusChangeListener = audioPlayingService$$ExternalSyntheticLambda1;
            if (this.audioManager.requestAudioFocus(audioPlayingService$$ExternalSyntheticLambda1, 3, 1) == 1) {
                stopAlarm();
                MediaPlayer create = MediaPlayer.create(this, R.raw.loan_audio);
                alarmMediaPlayer = create;
                if (create != null) {
                    create.start();
                    vibrateWhilePlaying();
                    Log.d("AudioPlayingService", "Audio started from raw folder");
                    alarmMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                        @Override
                        public final void onCompletion(MediaPlayer mediaPlayer) {
                            AudioPlayingService.this.m305x30f9150c(mediaPlayer);
                        }
                    });
                }
            } else {
                Log.e("AudioPlayingService", "Failed to gain audio focus");
            }
        } catch (Exception e) {
            Log.e("AudioPlayingService", "Error playing local raw audio", e);
        }
    }

    static void lambda$playLocalRawAudio$4(int i) {
        if (i == -1) {
            stopAlarm();
        }
    }

    public void m305x30f9150c(MediaPlayer mediaPlayer) {
        stopVibration();
    }

    private void setupAudioManager() {
        if (this.audioManager == null) {
            this.audioManager = (AudioManager) getSystemService("audio");
        }
        this.audioManager.setStreamVolume(3, this.audioManager.getStreamMaxVolume(3), 1);
        this.audioManager.setRingerMode(2);
    }

    private void vibrateWhilePlaying() {
        Vibrator vibrator = this.vibrator;
        if (vibrator == null || !vibrator.hasVibrator()) {
            return;
        }
        if (Build.VERSION.SDK_INT >= 26) {
            this.vibrator.vibrate(VibrationEffect.createWaveform(new long[]{0, 500, 500}, 0));
        } else {
            this.vibrator.vibrate(new long[]{0, 500, 500}, 0);
        }
    }

    private void stopVibration() {
        Vibrator vibrator = this.vibrator;
        if (vibrator != null) {
            vibrator.cancel();
        }
    }

    public static void stopAlarm() {
        MediaPlayer mediaPlayer = alarmMediaPlayer;
        if (mediaPlayer != null) {
            if (mediaPlayer.isPlaying()) {
                alarmMediaPlayer.stop();
            }
            alarmMediaPlayer.reset();
            alarmMediaPlayer.release();
            alarmMediaPlayer = null;
        }
    }

    @Override
    public void onDestroy() {
        AudioManager.OnAudioFocusChangeListener onAudioFocusChangeListener;
        stopAlarm();
        stopVibration();
        AudioManager audioManager = this.audioManager;
        if (audioManager != null && (onAudioFocusChangeListener = this.focusChangeListener) != null) {
            audioManager.abandonAudioFocus(onAudioFocusChangeListener);
        }
        if (Build.VERSION.SDK_INT >= 26) {
            stopForeground(true);
        }
        super.onDestroy();
    }
}