소스 검색

修复部分手机上传视频从相册选择拿不到地址的问题

Pq 3 년 전
부모
커밋
e857db80c3

+ 10 - 0
student/src/main/java/com/cooleshow/student/ui/web/HtmlActivity.java

@@ -4,6 +4,7 @@ import static com.cooleshow.base.common.WebConstants.WEB_URL;
 
 import android.Manifest;
 import android.annotation.SuppressLint;
+import android.content.ClipData;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.res.Configuration;
@@ -1164,6 +1165,15 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
             }
         } else if (requestCode == REQUEST_CODE_FILE_CHOOSER) {
             Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
+            if(result == null){
+                //兼容有些手机从相册选择的视频拿不到uri的问题,比如华为p40
+                if(data!=null && data.getClipData()!=null){
+                    ClipData clipData = data.getClipData();
+                    if(clipData.getItemAt(0)!=null){
+                        result = clipData.getItemAt(0).getUri();
+                    }
+                }
+            }
             if (result != null) {
                 File file = UriUtils.uri2File(result);
                 if (file != null && file.exists()) {

+ 13 - 3
teacher/src/main/java/com/cooleshow/teacher/ui/web/HtmlActivity.java

@@ -4,6 +4,7 @@ import static com.cooleshow.base.common.WebConstants.WEB_URL;
 
 import android.Manifest;
 import android.annotation.SuppressLint;
+import android.content.ClipData;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.res.Configuration;
@@ -274,7 +275,7 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
             } else {
                 webViewUrl = (url + "?Authorization=" + authorization);
             }
-            LogUtils.i("pq","webViewUrl:"+webViewUrl);
+            LogUtils.i("pq", "webViewUrl:" + webViewUrl);
             webView.loadUrl(webViewUrl);
         } else {
             webView.loadUrl(url);
@@ -792,7 +793,7 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
         } else {
             intent.setType("*/*");
         }
-        intent.addCategory(Intent.CATEGORY_OPENABLE);
+//        intent.addCategory(Intent.CATEGORY_OPENABLE);
         intent.putExtra(Intent.EXTRA_TITLE, "File Chooser");
         intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
         startActivityForResult(intent, REQUEST_CODE_FILE_CHOOSER);
@@ -1122,7 +1123,7 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
         if (resultCode == RESULT_OK) {
             if (requestCode == SHARE_CHAT_REQUEST_CODE) {
                 //选择群聊
-                ShareHelper.parseShareContactData(mImageBase64,data);
+                ShareHelper.parseShareContactData(mImageBase64, data);
                 return;
             }
         }
@@ -1169,6 +1170,15 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
             }
         } else if (requestCode == REQUEST_CODE_FILE_CHOOSER) {
             Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
+            if (result == null) {
+                //兼容有些手机从相册选择的视频拿不到uri的问题,比如华为p40
+                if (data != null && data.getClipData() != null) {
+                    ClipData clipData = data.getClipData();
+                    if (clipData.getItemAt(0) != null) {
+                        result = clipData.getItemAt(0).getUri();
+                    }
+                }
+            }
             if (result != null) {
                 File file = UriUtils.uri2File(result);
                 if (file != null && file.exists()) {