直播平台制作,支持其他应用打开,接收其他应用文件并保存
直播平台制作,支持其他应用打开,接收其他应用文件并保存
AndroidMainfest中
1 | <activity<br> android:name= ".ui.activity.OtherFileActivity" <br> android:screenOrientation= "portrait" ><br> <intent-filter><br> <action android:name= "android.intent.action.VIEW" /><br> <category android:name= "android.intent.category.DEFAULT" /><br> <category android:name= "android.intent.category.BROWSABLE" /><br> <data android:scheme= "file" /><br> <data android:scheme= "content" /><br> <data android:mimeType= "*/*" /> <br> <data android:pathPattern= "*/docx" /> <br> </intent-filter><br> </activity><br> |
说明
1 | <br>OtherFileActivity 其他应用调用本app 打开的activity,也是接收数据的activity<br>android:mimeType=“/”<br>android:pathPattern=“*/docx”<br>保存Activity中接收的文件<br> override fun onNewIntent(intent: Intent?) {<br> super.onNewIntent(intent)<br> save(intent)<br> }<br> private fun save(intent: Intent?){<br> val uri: Uri? = intent?.data<br> val imageUri: Uri? = intent?.getParcelableExtra(Intent.EXTRA_STREAM)<br> if (uri != null) {<br> val scheme:String? = uri.scheme<br> val host:String? = uri.host<br> val port:Int = uri.port<br> val path:String? = uri.path<br> val query:String? = uri.query<br> val action:String? = intent.action<br> val type:String? = intent.type<br> var content: String = "" <br> if (Intent.ACTION_SEND.equals(action) && type != null) { //单文件<br> if ("text/plain".equals(type)) {<br> //TODO 单文本文件<br> } else if (type.startsWith("image/")) {<br> //TODO 单图片<br> }<br> } else if (Intent.ACTION_SEND_MULTIPLE.equals(action) && type != null) { //多文件<br> if (type.startsWith("image/")) {<br> //TODO 图片列表<br> }<br> }<br> var inputStream: InputStream? = null<br> try {<br> inputStream = contentResolver.openInputStream(uri)<br> content = Util.readStreamToString(inputStream)<br> //content 就是读取到的内容了,请直接食用<br> } catch (e: Exception) {<br> e.printStackTrace()<br> } finally {<br> if (inputStream != null) {<br> try {<br> inputStream.close()<br> } catch (ignored: IOException) {<br> }<br> }<br> }<br> content.let {<br> val createFiles = File(this.filesDir, path)<br> createFiles.exists()<br> try {<br> createFiles.createNewFile()<br> } catch (e: IOException) {<br> Log.d("TAG", "files err:" + e.message)<br> }<br> }<br> }<br> } |
以上就是 直播平台制作,支持其他应用打开,接收其他应用文件并保存,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-05-19 短视频软件开发,实现简单的轮播图效果
2022-05-19 短视频直播源码,视频计时效果,可随时按键暂停
2022-05-19 直播软件搭建,渐变色按钮带阴影样式