package cn.flightfeather.thirdappmodule.util
|
|
import android.app.Activity
|
import android.app.Dialog
|
import android.content.Intent
|
import android.graphics.Bitmap
|
import android.net.Uri
|
import android.os.Build
|
import android.os.Environment
|
import android.provider.MediaStore
|
import android.support.v4.app.Fragment
|
import android.support.v4.app.FragmentActivity
|
import android.support.v4.content.FileProvider
|
import android.webkit.MimeTypeMap
|
import cn.flightfeather.thirdappmodule.util.file.FileUtils
|
import com.flightfeather.taizhang.common.utils.download.UpDownloadUtil
|
import org.jetbrains.anko.toast
|
import java.io.File
|
import java.io.FileOutputStream
|
|
/**
|
* 系统功能调用类
|
* @author riku
|
* Date: 2019/11/22
|
*/
|
object SystemServiceUtils {
|
|
const val REQUEST_TAKE_PICTURE = 1000
|
|
fun shootPhoto(activity: FragmentActivity, requestCode: Int): String {
|
//拍照存放路径
|
val mFilePath = getFilePath()
|
|
val intent = getIntent(mFilePath, activity)
|
activity.startActivityForResult(intent, requestCode)
|
return mFilePath
|
}
|
|
fun shootPhoto(fragment: Fragment, requestCode: Int): String {
|
//拍照存放路径
|
return fragment.activity?.run {
|
val mFilePath = getFilePath()
|
|
val intent = getIntent(mFilePath, this)
|
fragment.startActivityForResult(intent, requestCode)
|
mFilePath
|
} ?: ""
|
}
|
|
fun shareFile(activity: Activity?, path: String?) {
|
if (path?.contains("http") == true) {
|
var d: Dialog? = null
|
activity?.let {
|
d = DialogUtil2.showLoadingDialog(it, "下载中", false, null)
|
}
|
UpDownloadUtil.download(activity, path, FileUtils.getFileName(path), {
|
d?.dismiss()
|
share(activity, it)
|
}, {
|
activity?.toast("下载失败")
|
d?.dismiss()
|
})
|
} else {
|
share(activity, path)
|
}
|
}
|
|
fun saveBitmap(path: String, bitmap: Bitmap): Boolean {
|
val file = File(path)
|
if (!file.parentFile.exists()) {
|
file.parentFile.mkdirs()
|
} else if (file.exists()) {
|
file.delete()
|
}
|
try {
|
val out = FileOutputStream(file)
|
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out)
|
out.flush()
|
out.close()
|
return true
|
} catch (e: Throwable) {
|
e.printStackTrace()
|
}
|
|
return false
|
}
|
|
private fun share(activity: Activity?, path: String?) {
|
val uri = FileUtils.getUri(activity, path)
|
val extension = FileUtils.getExtensionName(path)
|
val intent = Intent().apply {
|
action = Intent.ACTION_SEND
|
putExtra(Intent.EXTRA_STREAM, uri)
|
type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension)
|
}
|
activity?.startActivity(Intent.createChooser(intent, "分享文档"))
|
}
|
|
private fun getFilePath(): String {
|
val fileDir = File(Environment.getExternalStorageDirectory(), "Pictures")
|
if (!fileDir.exists()) {
|
fileDir.mkdir()
|
}
|
return fileDir.absolutePath + "/IMG_" + System.currentTimeMillis() + ".jpg"
|
}
|
|
private fun getIntent(mFilePath: String, activity: FragmentActivity): Intent {
|
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
|
val uri: Uri = if (Build.VERSION.SDK_INT >= 24) {
|
FileProvider.getUriForFile(
|
activity,
|
activity.packageName + ".fileProvider",
|
File(mFilePath)
|
)
|
} else {
|
Uri.fromFile(File(mFilePath))
|
}
|
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri)
|
return intent
|
}
|
}
|