美文网首页Android
QQ微信,其他方式打开文档(doc,docx,ppt,pptx,

QQ微信,其他方式打开文档(doc,docx,ppt,pptx,

作者: 阿V很简单 | 来源:发表于2017-05-04 16:09 被阅读0次

最近由于项目需求,需要实现的功能大体如下:

借助QQ,微信的文件接收功能,使用户在接收到文件之后可以跳转到我们的App中,进行其他相关的业务.

好了不多说,直接上代码:

1.首先需要在AndroidManifest.xml中声明

     <activity android:name={ActivityName}>
        <!--doc-->
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="application/msword"/>
        </intent-filter>
        <!--pdf-->
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="application/pdf"/>
        </intent-filter>
        <!--ppt-->
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="application/vnd.ms-powerpoint"/>
        </intent-filter>
        <!--xls-->
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="application/vnd.ms-excel"/>
        </intent-filter>
        <!--xlsx-->
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>
        </intent-filter>
        <!--docx-->
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document"/>
        </intent-filter>
        <!--pptx-->
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation"/>
        </intent-filter>
    </activity>

声明的作用:告诉其他的app你可以(View)打开这类的文件,而具体是哪一类文件,借助Action但关键还是借助 MIME 类型

做完了上面的操作,已经可以触发其他应用的打开方式了,但是还不够

qq.png 第四个就是本公司app(打广告).png

2.到声明的Activity下接受其他App传递的消息

void onCreate (Bundle savedInstanceState) {
    ...
    // 获得 intent, action 和 MIME type
    Intent intent = getIntent();
    String action = intent.getAction();
    String type = intent.getType();

    if (Intent.ACTION_VIEW.equals(action) && type != null) {
        if ("application/msword".equals(type)) {
            handle_Doc(intent); // 处理doc
        }
        ...
    }
}

private void handle_Doc(Intent intent) {
    Uri data = intent.getData();
    String path = data.getPath();//文件路径
    ...
}
雨有点大

关于这一功能的参考文档:

MIME 参考手册 - W3School
Android - 分享内容 - 接收其他APP的内容

相关文章

网友评论

    本文标题:QQ微信,其他方式打开文档(doc,docx,ppt,pptx,

    本文链接:https://www.haomeiwen.com/subject/mkfdtxtx.html