直播平台制作,支持其他应用打开,接收其他应用文件并保存

直播平台制作,支持其他应用打开,接收其他应用文件并保存

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>    }

 

 

 以上就是 直播平台制作,支持其他应用打开,接收其他应用文件并保存,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2022-05-19 短视频软件开发,实现简单的轮播图效果
2022-05-19 短视频直播源码,视频计时效果,可随时按键暂停
2022-05-19 直播软件搭建,渐变色按钮带阴影样式
点击右上角即可分享
微信分享提示