Android 开发常用 kotlin 工具方法使用实例、应用技巧

2019年5月11日06:24:53 发表评论 40 views

Android 开发常用的 kotlin 工具方法,主要包括Android 开发常用的 kotlin 工具方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

快一个月没更新博文了,最近业余时间在写 Flutter_WanAndroid 项目以及一个小程序。后续都会更新博文介绍项目中遇到的问题和解决办法。这里先分享下最近在公司项目上使用 Kotlin 开发使用的一些工具类。

  • 调用拍照
  • 拨打电话、发送短信
  • 启动系统权限设置页面
  • 启动应用市场
  • 使用 WPS 打开文件
  1. 调用拍照
新建 xml 文件,存放路径
<?xml version="" encoding="utf-8"?>
<paths xmlns:android="">
  <external-path
          name="external_files"
          path="creaway/"/>
</paths>

调用方法
 override fun takePhoto(activity: Activity, requestCode:Int) {
   var outputImage = File(,"")
   try{
       if(()) {
           ()
       }
   }catch (ex: IOException) {
       ()
   }

   if(Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
       imageUri = (outputImage)
   }else {
       imageUri = (activity,"",outputImage)
   }

   val intent = Intent("")
   (MediaStore.EXTRA_OUTPUT, imageUri)
   (intent, requestCode)
}

处理得到的结果
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
   (requestCode, resultCode, data)
   if (requestCode == REQUEST_CODE) {
       if (resultCode == RESULT_OK) {
           // 处理返回的结果
       }
   }
}

  1. 拨打电话、发送短信
 {
  var intent = Intent()
  intent.data = ("tel:${user!!.phone_number}")
  startActivity(intent)
}

 {
  var intent = Intent()
  intent.data = ("smsto:${user!!.phone_number}")
  ("sms_body", "")
  startActivity(intent)
}
  1. 启动系统权限设置页面
startActivityForResult(
   Intent()
       .setData(("package", packageName, null)),7534
)
  1. 启动应用市场
// 跳转应用市场下载 wps
var uri = ("market://details?id=")
var intent = Intent(Intent.ACTION_VIEW, uri)
if ((getPackageManager()) != null) {
    startActivity(intent)
} else {
    //要调起的应用不存在时的处理
    ("TAG","应用市场不存在,不能下载 WPS ")
}
  1. 使用 WPS 打开文件
fun openFile(context: Context, fileUrl: String?, fileType:String?): Boolean {
   if ("jpg".equals(fileType) || "jpeg".equals(fileType) || "gif".equals(fileType) || "png".equals(fileType)) {
       (context, "文件类型错误")
   } else {
       //检测是否安装了wps软件,没有安装则去下载
       if (isAvuliable(context, "")) {
           val intent = ().getLaunchIntentForPackage("")
           val bundle = Bundle()

           // 这里采用传入文档的在线地址进行打开,免除下载的步骤,也不需要判断安卓版本号
           ((fileUrl))
           s(bundle)
           (intent)

       } else {
           // 跳转应用市场下载 wps
           var uri = ("market://details?id=")
           var intent = Intent(Intent.ACTION_VIEW, uri)
           if ((()) != null) {
               (intent)
           } else {
               // 要调起的应用不存在时的处理
               (context, "请先下载 WPS 后再点击打开")
           }
       }
   }
   return true
}


private fun isAvuliable(context: Context, packageName: String): Boolean {
   var packageManager = context.packageManager
   var packageInfo = packageManager.getInstalledPackages(0)
    {
       if ((packageName, true)) {
           return true
       }
   }
   return false
}

ps:其实有其他面向对象语言,入门 kotlin 真的很快,尤其是有 Java 基础。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: