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

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();//文件路徑
...
}

雨有點大