Loading AndroidManifest.xml +2 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" /> <uses-permission android:name="android.permission.CAPTURE_TUNER_AUDIO_INPUT" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> Loading Loading @@ -72,6 +73,7 @@ <service android:name=".FmService" android:foregroundServiceType="mediaPlayback" android:exported="false" > <intent-filter> <action android:name="com.android.fmradio.IFmRadioService" /> Loading src/com/android/fmradio/FmService.java +5 −4 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ServiceInfo; import android.content.res.Configuration; import android.database.Cursor; import android.graphics.Bitmap; Loading Loading @@ -1360,7 +1361,7 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan mMediaButtonIntentReceiver.setMediaHandleListener(listener); IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); registerReceiver(mMediaButtonIntentReceiver, filter); registerReceiver(mMediaButtonIntentReceiver, filter, Context.RECEIVER_NOT_EXPORTED); mMediaSession = new MediaSession(mContext, TAG); Intent i = new Intent(this, FMMediaButtonIntentReceiver.class) .setFlags(Intent.FLAG_RECEIVER_FOREGROUND); Loading Loading @@ -1580,7 +1581,7 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan filter.addAction(Intent.ACTION_SCREEN_OFF); filter.addAction(Intent.ACTION_HEADSET_PLUG); mBroadcastReceiver = new FmServiceBroadcastReceiver(); registerReceiver(mBroadcastReceiver, filter); registerReceiver(mBroadcastReceiver, filter, Context.RECEIVER_NOT_EXPORTED); } private void unregisterFmBroadcastReceiver() { Loading Loading @@ -2003,7 +2004,7 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan Notification n = mNotificationBuilder.build(); n.flags &= ~Notification.FLAG_NO_CLEAR; startForeground(NOTIFICATION_ID, n); startForeground(NOTIFICATION_ID, n, ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK); } /** Loading Loading @@ -2041,7 +2042,7 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan filter.addAction(Intent.ACTION_MEDIA_MOUNTED); filter.addAction(Intent.ACTION_MEDIA_UNMOUNTED); filter.addAction(Intent.ACTION_MEDIA_EJECT); registerReceiver(mSdcardListener, filter); registerReceiver(mSdcardListener, filter, Context.RECEIVER_NOT_EXPORTED); } private void unregisterSdcardListener() { Loading Loading
AndroidManifest.xml +2 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" /> <uses-permission android:name="android.permission.CAPTURE_TUNER_AUDIO_INPUT" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> Loading Loading @@ -72,6 +73,7 @@ <service android:name=".FmService" android:foregroundServiceType="mediaPlayback" android:exported="false" > <intent-filter> <action android:name="com.android.fmradio.IFmRadioService" /> Loading
src/com/android/fmradio/FmService.java +5 −4 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ServiceInfo; import android.content.res.Configuration; import android.database.Cursor; import android.graphics.Bitmap; Loading Loading @@ -1360,7 +1361,7 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan mMediaButtonIntentReceiver.setMediaHandleListener(listener); IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); registerReceiver(mMediaButtonIntentReceiver, filter); registerReceiver(mMediaButtonIntentReceiver, filter, Context.RECEIVER_NOT_EXPORTED); mMediaSession = new MediaSession(mContext, TAG); Intent i = new Intent(this, FMMediaButtonIntentReceiver.class) .setFlags(Intent.FLAG_RECEIVER_FOREGROUND); Loading Loading @@ -1580,7 +1581,7 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan filter.addAction(Intent.ACTION_SCREEN_OFF); filter.addAction(Intent.ACTION_HEADSET_PLUG); mBroadcastReceiver = new FmServiceBroadcastReceiver(); registerReceiver(mBroadcastReceiver, filter); registerReceiver(mBroadcastReceiver, filter, Context.RECEIVER_NOT_EXPORTED); } private void unregisterFmBroadcastReceiver() { Loading Loading @@ -2003,7 +2004,7 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan Notification n = mNotificationBuilder.build(); n.flags &= ~Notification.FLAG_NO_CLEAR; startForeground(NOTIFICATION_ID, n); startForeground(NOTIFICATION_ID, n, ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK); } /** Loading Loading @@ -2041,7 +2042,7 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan filter.addAction(Intent.ACTION_MEDIA_MOUNTED); filter.addAction(Intent.ACTION_MEDIA_UNMOUNTED); filter.addAction(Intent.ACTION_MEDIA_EJECT); registerReceiver(mSdcardListener, filter); registerReceiver(mSdcardListener, filter, Context.RECEIVER_NOT_EXPORTED); } private void unregisterSdcardListener() { Loading