Android工具之让自己写的播放器被其他应用调起

1.参考2.3源码/packages/apps/Gallery里的功能清单文件,

找到MovieView Activity,copy它的意图过滤器如下:

 <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="rtsp" />
             </intent-filter>
             <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="video/*" />
                <data android:mimeType="application/sdp" />
             </intent-filter>
             <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="http" />
                <data android:mimeType="video/mp4" />
                <data android:mimeType="video/3gp" />
                <data android:mimeType="video/3gpp" />
                <data android:mimeType="video/3gpp2" />

             </intent-filter>

全部paste 到自己写的播放器Acitivity标签中,保存即可;

给自己播放器的Activity增加label,增加自己的标签;

2.外部程序调用写的代码:

Intent intent = new Intent(context, SystemVideoPlayer.class);
intent.setDataAndType(Uri.parse(item.getData()),"video/*");
context.startActivity(intent);

3.自己写的播放器SystemVideoPlayer就会被调用,解析intent带来的数据,并给videoview设置播放地址


补充:下面这个更全面:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="rtsp" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="video/*" />
    <data android:mimeType="application/sdp" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="http" />
    <data android:mimeType="video/mp4" />
    <data android:mimeType="video/3gp" />
    <data android:mimeType="video/3gpp" />
    <data android:mimeType="video/3gpp2" />
</intent-filter>

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.LAUNCHER" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data
        android:mimeType="video/*"
        android:scheme="http" />
    <data
        android:mimeType="video/*"
        android:scheme="rtsp" />
    <data
        android:mimeType="video/*"
        android:scheme="rtmp" />
    <data
        android:mimeType="video/*"
        android:scheme="udp" />
    <data
        android:mimeType="video/*"
        android:scheme="tcp" />
    <data
        android:mimeType="video/*"
        android:scheme="file" />
    <data
        android:mimeType="video/*"
        android:scheme="content" />
    <data
        android:mimeType="video/*"
        android:scheme="mms" />
    <data android:mimeType="application/octet-stream" />
    <data android:mimeType="application/x-mpegurl" />
    <data android:mimeType="application/vnd.apple.mpegurl" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="content" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data
        android:mimeType="application/x-mpegurl"
        android:scheme="http" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data android:scheme="rtsp" />
    <data android:scheme="rtmp" />
    <data android:scheme="mms" />
    <data android:scheme="tcp" />
    <data android:scheme="udp" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.SEND" />
    <action android:name="android.intent.action.SENDTO" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="video/*" />
    <data android:mimeType="application/sdp" />
    <data android:mimeType="application/octet-stream" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="http" />
    <data android:mimeType="video/*" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="file" />
    <data android:scheme="content" />
    <data android:scheme="http" />
    <data android:scheme="https" />
    <data android:scheme="ftp" />
    <data android:scheme="rtsp" />
    <data android:scheme="rtmp" />
    <data android:scheme="mms" />
    <data android:scheme="tcp" />
    <data android:scheme="udp" />
    <data android:scheme="gopher" />
    <data android:mimeType="video/*" />
    <!-- <data android:mimeType="audio/*" /> -->
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="file" />
    <data android:scheme="content" />
    <data android:scheme="http" />
    <data android:scheme="https" />
    <data android:scheme="ftp" />
    <data android:scheme="rtsp" />
    <data android:scheme="rtmp" />
    <data android:scheme="mms" />
    <data android:scheme="tcp" />
    <data android:scheme="udp" />
    <data android:scheme="gopher" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.avi" />
    <data android:pathPattern=".*\\.asf" />
    <data android:pathPattern=".*\\.f4v" />
    <data android:pathPattern=".*\\.flv" />
    <data android:pathPattern=".*\\.mkv" />
    <data android:pathPattern=".*\\.mpeg" />
    <data android:pathPattern=".*\\.mpg" />
    <data android:pathPattern=".*\\.mov" />
    <data android:pathPattern=".*\\.rm" />
    <data android:pathPattern=".*\\.vob" />
    <data android:pathPattern=".*\\.wmv" />
    <data android:pathPattern=".*\\.ts" />
    <data android:pathPattern=".*\\.tp" />
    <data android:pathPattern=".*\\.m3u" />
    <data android:pathPattern=".*\\.m3u8" />
    <data android:pathPattern=".*\\.m4v" />
    <data android:pathPattern=".*\\.mp4" />
</intent-filter>

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="rtsp" />
    <data android:mimeType="video/*" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="rtsp" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="http" />
    <data android:mimeType="video/*" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="video/*" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="file" />
    <data android:mimeType="video/*" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.SEARCH" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值