小编Sar*_* Ma的帖子

MediaMetadata.getString java.lang.RuntimeException:无法从parcel blob读取位图

调用MediaMetadata.getString,在报告中有以下崩溃,但并不总是重复:

 java.lang.RuntimeException: Could not read bitmap from parcel blob.
    at android.graphics.Bitmap.nativeCreateFromParcel(Native Method)
    at android.graphics.Bitmap.access$000(Bitmap.java:32)
    at android.graphics.Bitmap$1.createFromParcel(Bitmap.java:1477)
    at android.graphics.Bitmap$1.createFromParcel(Bitmap.java:1469)
    at android.os.Parcel.readParcelable(Parcel.java:2246)
    at android.os.Parcel.readValue(Parcel.java:2146)
    at android.os.Parcel.readArrayMapInternal(Parcel.java:2479)
    at android.os.BaseBundle.unparcel(BaseBundle.java:221)
    at android.os.BaseBundle.getCharSequence(BaseBundle.java:953)
    at android.os.Bundle.getCharSequence(Bundle.java:716)
    at android.media.MediaMetadata.getText(MediaMetadata.java:334)
    at android.media.MediaMetadata.getString(MediaMetadata.java:347)
Run Code Online (Sandbox Code Playgroud)

代码就像吹,MediaMetadata元是来自api MediaSessionManager.OnActiveSessionsChangedListener的控制器,它应该由第三方音乐应用程序创建.

    meta.getString(MediaMetadata.METADATA_KEY_ALBUM_ARTIST);
    meta.getString(MediaMetadata.METADATA_KEY_ARTIST);            
    meta.getString(MediaMetadata.METADATA_KEY_AUTHOR);         
    meta.getBitmap(MediaMetadata.METADATA_KEY_ART);
    meta.getBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART);            
    meta.getString(MediaMetadata.METADATA_KEY_ALBUM);
    meta.getString(MediaMetadata.METADATA_KEY_TITLE);
Run Code Online (Sandbox Code Playgroud)

为什么getString将解析位图?当这种情况发生时,内存是否可能出局?

java android bitmap android-music-player

6
推荐指数
1
解决办法
1282
查看次数

如何获得android.Manifest.permission.MEDIA_CONTENT_CONTROL的android权限

我正在尝试使用 API21 中的 MediaSessionManager 来控制设备上的音乐播放。对于用法,它说需要持有 android.Manifest.permission.MEDIA_CONTENT_CONTROL:

public void addOnActiveSessionsChangedListener (MediaSessionManager.OnActiveSessionsChangedListener sessionListener, ComponentName notificationListener, Handler handler)

Added in API level 21
Add a listener to be notified when the list of active sessions changes.***This requires the android.Manifest.permission.MEDIA_CONTENT_CONTROL permission be held by the calling app.*** You may also retrieve this list if your app is an enabled notification listener using the NotificationListenerService APIs, in which case you must pass the ComponentName of your enabled listener. Updates will be posted to the handler …
Run Code Online (Sandbox Code Playgroud)

permissions android android-5.0-lollipop

5
推荐指数
1
解决办法
5390
查看次数