最近由于項目需求,需要實現(xiàn)的功能大體如下:
借助QQ,微信的文件接收功能,使用戶在接收到文件之后可以跳轉(zhuǎn)到我們的App中,進(jìn)行其他相關(guān)的業(yè)務(wù).
好了不多說,直接上代碼:
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但關(guān)鍵還是借助 MIME 類型
做完了上面的操作,已經(jīng)可以觸發(fā)其他應(yīng)用的打開方式了,但是還不夠
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();//文件路徑
...
}
雨有點大