Catch strange SecurityException.
No idea how people manage to hit this, but it seems to be a thing on Samsung phones. Sample stacktrace: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=12655, uid=10269 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission() at android.os.Parcel.readException(Parcel.java:1620) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) at android.content.ContentProviderProxy.query(ContentProviderNative.java:421) at android.content.ContentResolver.query(ContentResolver.java:502) at android.content.ContentResolver.query(ContentResolver.java:445) at ch.blinkenlights.android.vanilla.MediaUtils.getAndroidMediaIds(MediaUtils.java:591) at ch.blinkenlights.android.vanilla.PlaybackService.scrobbleBroadcast(PlaybackService.java:1108) at ch.blinkenlights.android.vanilla.PlaybackService.broadcastChange(PlaybackService.java:1064) at ch.blinkenlights.android.vanilla.PlaybackService.handleMessage(PlaybackService.java:1543) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:148) at android.os.HandlerThread.run(HandlerThread.java:61) Note that this happens WHILE we play a song - so claiming to not have READ_EXTERNAL_STORAGE privileges seems to be - strange.
This commit is contained in:
parent
df49dd1a49
commit
f04a2f1186
@ -588,12 +588,16 @@ public class MediaUtils {
|
||||
public static long[] getAndroidMediaIds(Context context, Song song) {
|
||||
long[] result = { -1, -1, -1 };
|
||||
String[] projection = new String[]{ MediaStore.Audio.Media._ID, MediaStore.Audio.Media.ALBUM_ID, MediaStore.Audio.Media.ARTIST_ID };
|
||||
Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, MediaStore.Audio.Media.DATA+"=?", new String[] { song.path }, null);
|
||||
if (cursor.moveToFirst()) {
|
||||
for (int i=0; i<result.length; i++)
|
||||
result[i] = cursor.getLong(i);
|
||||
try {
|
||||
Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, MediaStore.Audio.Media.DATA+"=?", new String[] { song.path }, null);
|
||||
if (cursor.moveToFirst()) {
|
||||
for (int i=0; i<result.length; i++)
|
||||
result[i] = cursor.getLong(i);
|
||||
}
|
||||
cursor.close();
|
||||
} catch (SecurityException e) {
|
||||
Log.e("VanillaMusic", "Wowies: No permission to read EXTERNAL_CONTENT_URI for song "+song.path+": "+e);
|
||||
}
|
||||
cursor.close();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user