Commit 6afae939 authored by yinjiacheng's avatar yinjiacheng

update 通过Uri获取filePath

parent abd7dee0
...@@ -14,11 +14,13 @@ import android.util.Log ...@@ -14,11 +14,13 @@ import android.util.Log
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import com.yidian.common.XRouterPathConstants import com.yidian.common.XRouterPathConstants
import com.yidian.common.base.BaseActivity import com.yidian.common.base.BaseActivity
import com.yidian.common.utils.YdFileUtils
import com.yidian.shenghuoquan.newscontent.databinding.ActivityLifeAccountEnterpriseCertificationBinding import com.yidian.shenghuoquan.newscontent.databinding.ActivityLifeAccountEnterpriseCertificationBinding
import com.yidian.shenghuoquan.newscontent.http.ApiService import com.yidian.shenghuoquan.newscontent.http.ApiService
import com.yidian.shenghuoquan.newscontent.http.httpbean.BusinessLicenseOCRBean import com.yidian.shenghuoquan.newscontent.http.httpbean.BusinessLicenseOCRBean
import com.yidian.shenghuoquan.newscontent.http.httpbean.IBusinessLicenseOCRCallback import com.yidian.shenghuoquan.newscontent.http.httpbean.IBusinessLicenseOCRCallback
import com.yidian.shenghuoquan.newscontent.utils.KS3Core import com.yidian.shenghuoquan.newscontent.utils.KS3Core
import com.yidian.utils.ToastUtil
import java.io.File import java.io.File
import java.io.FileOutputStream import java.io.FileOutputStream
...@@ -117,6 +119,7 @@ class LifeAccountEnterpriseCertificationActivity : ...@@ -117,6 +119,7 @@ class LifeAccountEnterpriseCertificationActivity :
ApiService.businessLicenseOCR(object : IBusinessLicenseOCRCallback { ApiService.businessLicenseOCR(object : IBusinessLicenseOCRCallback {
override fun businessLicenseOCRSuccess(result: BusinessLicenseOCRBean.Response?) { override fun businessLicenseOCRSuccess(result: BusinessLicenseOCRBean.Response?) {
Log.d(TAG, "name: ${result?.name}, code: ${result?.code}") Log.d(TAG, "name: ${result?.name}, code: ${result?.code}")
ToastUtil.showToast(this@LifeAccountEnterpriseCertificationActivity, "ocr result, name: ${result?.name}, code: ${result?.code}")
} }
override fun businessLicenseOCRFailure(message: String?) { override fun businessLicenseOCRFailure(message: String?) {
...@@ -135,30 +138,29 @@ class LifeAccountEnterpriseCertificationActivity : ...@@ -135,30 +138,29 @@ class LifeAccountEnterpriseCertificationActivity :
} }
/** /**
* 通过Uri获取文件圈路径 * 通过Uri获取文件全路径
* 适配Android Q
*/ */
private fun getFilePathFromUri(uri: Uri?): String? { private fun getFilePathFromUri(uri: Uri?): String? {
val filePath = externalCacheDir?.absolutePath + FILE_PATH_BUSINESS_LICENSE if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val file = File(filePath) val file = File(externalCacheDir?.absolutePath + FILE_PATH_BUSINESS_LICENSE)
if (file.exists()) { if (file.exists()) {
file.delete() file.delete()
} else { } else {
// 相册 file.parentFile?.mkdirs()
file.parentFile?.mkdirs() file.createNewFile()
file.createNewFile() }
} if (uri?.scheme == ContentResolver.SCHEME_CONTENT) {
return when (uri?.scheme) {
ContentResolver.SCHEME_CONTENT -> {
val inputStream = contentResolver.openInputStream(uri) val inputStream = contentResolver.openInputStream(uri)
val fileOutputStream = FileOutputStream(file) val fileOutputStream = FileOutputStream(file)
inputStream?.let { FileUtils.copy(it, fileOutputStream) } inputStream?.let { FileUtils.copy(it, fileOutputStream) }
inputStream?.close() inputStream?.close()
fileOutputStream.close() fileOutputStream.close()
filePath return file.absolutePath
}
else -> {
uri?.path
} }
return null
} else {
return YdFileUtils.getImageAbsolutePath(this, uri)
} }
} }
......
...@@ -20,6 +20,7 @@ import com.yidian.shenghuoquan.newscontent.http.ApiService ...@@ -20,6 +20,7 @@ import com.yidian.shenghuoquan.newscontent.http.ApiService
import com.yidian.shenghuoquan.newscontent.http.httpbean.GetIDCardOCRBean import com.yidian.shenghuoquan.newscontent.http.httpbean.GetIDCardOCRBean
import com.yidian.shenghuoquan.newscontent.http.httpbean.IGetIDCardOCRCallback import com.yidian.shenghuoquan.newscontent.http.httpbean.IGetIDCardOCRCallback
import com.yidian.shenghuoquan.newscontent.utils.KS3Core import com.yidian.shenghuoquan.newscontent.utils.KS3Core
import com.yidian.utils.ToastUtil
import java.io.File import java.io.File
import java.io.FileOutputStream import java.io.FileOutputStream
...@@ -55,10 +56,20 @@ class IDCardTestActivity : BaseActivity<ActivityIdcardBinding>() { ...@@ -55,10 +56,20 @@ class IDCardTestActivity : BaseActivity<ActivityIdcardBinding>() {
startGetLicense() startGetLicense()
} }
viewBind.btnOcr.setOnClickListener { viewBind.btnOcr.setOnClickListener {
val frontFile = File(externalCacheDir?.absolutePath + "/front.jpg") val frontFile = File(externalCacheDir?.absolutePath + "/ocr/idCardFront.jpg")
if (frontFile.exists()) frontFile.delete() else frontFile.createNewFile() if (frontFile.exists()) {
val backFile = File(externalCacheDir?.absolutePath + "/back.jpg") frontFile.delete()
if (backFile.exists()) backFile.delete() else backFile.createNewFile() } else {
frontFile.parentFile?.mkdirs()
frontFile.createNewFile()
}
val backFile = File(externalCacheDir?.absolutePath + "/ocr/idCardBack.jpg")
if (backFile.exists()) {
backFile.delete()
} else {
backFile.parentFile?.mkdirs()
backFile.createNewFile()
}
idCardFront.compress(Bitmap.CompressFormat.JPEG, 100, FileOutputStream(frontFile)) idCardFront.compress(Bitmap.CompressFormat.JPEG, 100, FileOutputStream(frontFile))
idCardBack.compress(Bitmap.CompressFormat.JPEG, 100, FileOutputStream(backFile)) idCardBack.compress(Bitmap.CompressFormat.JPEG, 100, FileOutputStream(backFile))
KS3Core.INSTANCE.uploadObject(frontFile, object : KS3Core.OnKS3TaskListener { KS3Core.INSTANCE.uploadObject(frontFile, object : KS3Core.OnKS3TaskListener {
...@@ -107,6 +118,7 @@ class IDCardTestActivity : BaseActivity<ActivityIdcardBinding>() { ...@@ -107,6 +118,7 @@ class IDCardTestActivity : BaseActivity<ActivityIdcardBinding>() {
ApiService.getIDCardOCR(object : IGetIDCardOCRCallback { ApiService.getIDCardOCR(object : IGetIDCardOCRCallback {
override fun getIDCardOCRSuccess(result: GetIDCardOCRBean.Response?) { override fun getIDCardOCRSuccess(result: GetIDCardOCRBean.Response?) {
Log.d(KS3Core.TAG, "name: ${result?.posit?.name}, id num: ${result?.posit?.idcard_number}") Log.d(KS3Core.TAG, "name: ${result?.posit?.name}, id num: ${result?.posit?.idcard_number}")
ToastUtil.showToast(this@IDCardTestActivity, "ocr result, name: ${result?.posit?.name}, number: ${result?.posit?.idcard_number}")
} }
override fun getIDCardOCRFailure(message: String?) { override fun getIDCardOCRFailure(message: String?) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment