android 去掉Chrome浏览器播放本地音频和视频的选项,解决Chrome浏览器打开视频和音频出错问题

Chrome浏览器播放本地的音频和视频,会概率性的出现播放出错的情况,由于没有改APK的源码,无法将该问题进行根源性解决,所以只能将Chrome浏览器可以播放音频和视频的选项去掉

将Chrome浏览器从音频和视频播放列表中去掉,在 frameworks/base/core/java/com/android/internal/app/ResolverActivity.java类里面

1.先定义一个全局变量

private boolean isAudioandVideo;

2.在onCreate() 方法里面判断当前播放的类型是否是音频或视频,如果是,则将isAudioandVideo设为true

protected void onCreate(Bundle savedInstanceState, Intent intent,CharSequence title, int defaultTitleRes, Intent[] initialIntents,List<ResolveInfo> rList, boolean supportsAlwaysUseOption) {
    setTheme(R.style.Theme_DeviceDefault_Resolver);
    super.onCreate(savedInstanceState);
    ......
    
    //add start
    String type = intent.getType();

    String action = intent.getAction();

    Log.d(TAG,"oncreate type = " + type + ", action = " + action);

 if("android.intent.action.VIEW".equals(action) && ("audio/3gpp".equals(type) || "video/*".equals(type))) {

     isAudioandVideo = true;

    }
    //add end
}

3.在addResolveInfo方法(添加播放列表)的方法中,在改方法的for循环内添加判断isAudioandVideo的值和mResolveInfo.activityInfo是否不为空,满足条件的话,则进入判断mResolveInfo.activityInfo.packageName等于Chrome的包名com.android.chrome的话,就return掉,不走下面的 mDisplayList.add(dri); 代码,这样播放本地音频和视频选择播放器的列表,就不会有Chrome的选项

 private void addResolveInfo(DisplayResolveInfo dri) {
     if (dri != null && dri.mResolveInfo != null
         && dri.mResolveInfo.targetUserId == UserHandle.USER_CURRENT) {
         // Checks if this info is already listed in display.
         for (DisplayResolveInfo existingInfo : mDisplayList) {
             if (resolveInfoMatch(dri.mResolveInfo, existingInfo.mResolveInfo)) {
                 return;
             }
         }

         //add start
         if(REMOVE_CHROME_VIDEO && mChrome && dri.mResolveInfo.activityInfo != null) {
             Log.d(TAG, "addResolveInfo packageName = " + dri.mResolveInfo.activityInfo.packageName);
             if("com.android.chrome".equals(dri.mResolveInfo.activityInfo.packageName)) {
                 return;
             }
         }
         //add end

         mDisplayList.add(dri);
     }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值