/*
* Copyright (c) 2009-2015, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of The Linux Foundation nor
* the names of its contributors may be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package com.caf.fmradio;
import java.io.File;
import java.util.*;
import java.io.IOException;
import java.lang.ref.WeakReference;
import android.app.AlarmManager;
import android.app.Notification.Builder;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.app.IntentService;
import android.os.UserHandle;
import android.content.BroadcastReceiver;
import android.media.AudioManager;
import android.media.AudioManager.OnAudioFocusChangeListener;
import android.media.AudioSystem;
import android.media.MediaRecorder;
import android.media.AudioDevicePort;
import android.media.AudioDevicePortConfig;
import android.media.AudioFormat;
import android.media.AudioManager.OnAudioPortUpdateListener;
import android.media.AudioMixPort;
import android.media.AudioPatch;
import android.media.AudioPort;
import android.media.AudioPortConfig;
import android.media.AudioRecord;
import android.media.AudioTrack;
import android.os.Environment;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.RemoteException;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.RemoteViews;
import android.widget.Toast;
import android.view.KeyEvent;
import android.os.SystemProperties;
import qcom.fmradio.FmReceiver;
import qcom.fmradio.FmRxEvCallbacksAdaptor;
import qcom.fmradio.FmRxRdsData;
import qcom.fmradio.FmConfig;
import android.net.Uri;
import android.content.res.Resources;
import java.util.Date;
import java.text.SimpleDateFormat;
import android.provider.MediaStore;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import com.caf.utils.A2dpDeviceStatus;
import android.content.ComponentName;
import android.os.StatFs;
import android.os.SystemClock;
import android.os.Process;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.media.session.MediaSession;
import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
/**
* Provides "background" FM Radio (that uses the hardware) capabilities,
* allowing the user to switch between activities without stopping playback.
*/
public class FMRadioService extends Service
{
public static final int RADIO_AUDIO_DEVICE_WIRED_HEADSET = 0;
public static final int RADIO_AUDIO_DEVICE_SPEAKER = 1;
private static final int FMRADIOSERVICE_STATUS = 101;
private static final String FMRADIO_DEVICE_FD_STRING = "/dev/radio0";
private static final String LOGTAG = "FMService";//FMRadio.LOGTAG;
private FmReceiver mReceiver;
private BroadcastReceiver mHeadsetReceiver = null;
private BroadcastReceiver mSdcardUnmountReceiver = null;
private BroadcastReceiver mMusicCommandListener = null;
private BroadcastReceiver mSleepExpiredListener = null;
private boolean mSleepActive = false;
private BroadcastReceiver mRecordTimeoutListener = null;
private BroadcastReceiver mDelayedServiceStopListener = null;
private BroadcastReceiver mAudioBecomeNoisyListener = null;
private boolean mOverA2DP = false;
private BroadcastReceiver mFmMediaButtonListener;
private BroadcastReceiver mAirplaneModeChanged;
private IFMRadioServiceCallbacks mCallbacks;
private static FmSharedPreferences mPrefs;
private boolean mHeadsetPlugged = false;
private boolean mInternalAntennaAvailable = false;
private WakeLock mWakeLock;
private int mServiceStartId = -1;
private boolean mServiceInUse = false;
private static boolean mMuted = false;
private static int mFreq = 0;
private static boolean mResumeAfterCall = false;
private static String mAudioDevice="headset";
MediaRecorder mRecorder = null;
MediaRecorder mA2dp = null;
private boolean mFMOn = false;
private boolean mFmRecordingOn = false;
private static boolean mRtPlusSupport = false;
private boolean mSpeakerPhoneOn = false;
private int mCallStatus = 0;
private BroadcastReceiver mScreenOnOffReceiver = null;
final Handler mHandler = new Handler();
private boolean misAnalogModeSupported = false;
private boolean misAnalogPathEnabled = false;
private boolean mA2dpDisconnected = false;
private boolean mA2dpConnected = false;
//PhoneStateListener instances corresponding to each
private ArrayList<Integer> mScannedFrequencies = new ArrayList<Integer>();
private FmRxRdsData mFMRxRDSData=null;
// interval after which we stop the service when idle
private static final int IDLE_DELAY = 60000;
private File mA2DPSampleFile = null;
//Track FM playback for reenter App usecases
private boolean mPlaybackInProgress = false;
private boolean mStoppedOnFocusLoss = false;
private File mSampleFile = null;
long mSampleStart = 0;
// Messages handled in FM Service
private static final int FM_STOP =1;
private static final int RESET_NOTCH_FILTER =2;
private static final int STOPSERVICE_ONSLEEP = 3;
private static final int STOPRECORD_ONTIMEOUT = 4;
private static final int FOCUSCHANGE = 5;
//Track notch filter settings
private boolean mNotchFilterSet = false;
public static final int STOP_SERVICE = 0;
public static final int STOP_RECORD = 1;
// A2dp Device Status will be queried through this class
A2dpDeviceStatus mA2dpDeviceState = null;
private boolean mA2dpDeviceSupportInHal = false;
//on shutdown not to send start Intent to AudioManager
private boolean mAppShutdown = false;
private boolean mSingleRecordingInstanceSupported = false;
private AudioManager mAudioManager;
public static final long UNAVAILABLE = -1L;
public static final long PREPARING = -2L;
public static final long UNKNOWN_SIZE = -3L;
public static final long LOW_STORAGE_THRESHOLD = 50000000;
private long mStorageSpace;
private static final String IOBUSY_UNVOTE = "com.android.server.CpuGovernorService.action.IOBUSY_UNVOTE";
private s
没有合适的资源?快使用搜索试试~ 我知道了~
独立支持 QCOM 的 Iris FM_java_代码_下载
共588个文件
xml:393个
png:95个
java:64个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 25 浏览量
2022-07-04
23:36:29
上传
评论
收藏 1.59MB ZIP 举报
温馨提示
独立支持 QCOM 的 Iris FM_java_代码_下载
资源推荐
资源详情
资源评论
收起资源包目录
独立支持 QCOM 的 Iris FM_java_代码_下载
(588个子文件)
IFMRadioService.aidl 4KB
IFMRadioService.aidl 2KB
IFMRadioServiceCallbacks.aidl 2KB
IFMTransmitterService.aidl 2KB
IFMRadioServiceCallbacks.aidl 2KB
IFMTransmitterServiceCallbacks.aidl 2KB
IFMTransmitterServiceCallbacks.aidl 2KB
IFMTransmitterService.aidl 626B
FmRadioController.cpp 38KB
android_hardware_fm.cpp 30KB
ConfFileParser.cpp 23KB
ConfigFmThs.cpp 23KB
ConfFileParser.cpp 22KB
ConfigFmThs.cpp 20KB
FmPerformanceParams.cpp 12KB
LibfmJni.cpp 10KB
FmPerformanceParams.cpp 9KB
FmIoctlsInterface.cpp 9KB
FmIoctlsInterface.cpp 7KB
FM_Const.h 9KB
ConfigFmThs.h 5KB
ConfigFmThs.h 5KB
FmRadioController.h 5KB
FmConst.h 5KB
FmPerformanceParams.h 4KB
FmPerformanceParams.h 3KB
FmIoctlsInterface.h 3KB
ConfFileParser.h 3KB
ConfFileParser.h 3KB
FmIoctlsInterface.h 3KB
FMRadioService.java 130KB
FMRadio.java 119KB
FMStats.java 118KB
FMRadio.java 116KB
FMRadioService.java 105KB
FMStats.java 93KB
FmReceiver.java 91KB
HorizontalNumberPicker.java 74KB
FMTransmitterActivity.java 66KB
FMTransmitterActivity.java 56KB
FmSharedPreferences.java 46KB
FMTransmitterService.java 41KB
FMTransmitterService.java 40KB
FmSharedPreferences.java 40KB
FmTransmitter.java 35KB
Settings.java 27KB
FMRecordingService.java 25KB
FmRxControls.java 25KB
Settings.java 24KB
FmTransceiver.java 22KB
PresetStation.java 20KB
PresetStation.java 16KB
FmRxEventListner.java 14KB
StationListActivity.java 13KB
FrequencyPicker.java 12KB
FrequencyPicker.java 12KB
FrequencyPicker.java 12KB
FrequencyPicker.java 11KB
SpurFileParser.java 10KB
PresetList.java 10KB
PresetList.java 10KB
FmReceiverJNI.java 9KB
FmConfig.java 8KB
FmRxRdsData.java 8KB
FmTxEventListner.java 7KB
FrequencyPickerDialog.java 7KB
FrequencyPickerDialog.java 6KB
FrequencyPickerDialog.java 6KB
FrequencyPickerDialog.java 5KB
A2dpDeviceStatus.java 5KB
A2dpDeviceStatus.java 4KB
FMTransmitterConfigReceiver.java 4KB
FmTransmitterCallbacks.java 4KB
FmTags.java 4KB
FmTags.java 4KB
CommaSeparatedFreqFileReader.java 4KB
CommaSeparatedFreqFileReader.java 4KB
SpurDetails.java 4KB
A2dpDeviceStatus.java 4KB
A2dpDeviceStatus.java 3KB
FMMediaButtonIntentReceiver.java 3KB
FMRecordingReceiver.java 3KB
Spur.java 3KB
SpurFileFormatConst.java 3KB
FMMediaButtonIntentReceiver.java 3KB
FmRxEvCallbacksAdaptor.java 3KB
SpurTable.java 2KB
FmRxEvCallbacks.java 2KB
FmTransmitterCallbacksAdaptor.java 2KB
FMAdapterApp.java 2KB
GetNextFreqInterface.java 2KB
GetNextFreqInterface.java 2KB
SpurFileParserInterface.java 2KB
FMAdapterApp.java 2KB
Android.mk 2KB
Android.mk 1KB
Android.mk 924B
Android.mk 836B
Android.mk 787B
Android.mk 420B
共 588 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9154
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功