①:首先在清单文件相关activity下配置
<activity android:name=".MainActivity"
android:launchMode="singleTask"
android:exported="true">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!--QQ第三方应用打开支持-->
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<!--支持类型xls-->
<data android:mimeType="application/vnd.ms-excel" />
<!--微信第三方应用打开支持-->
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<!--支持类型xlsx-->
<data android:mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /></activity>
②:在相关activity的onCreate(app被杀死从QQ返回时候会触发)和onNewIntent(APP在后台返回时候会触发)接收intent
③:获取intent文件的真实路径
public String getQQWXFilePath(Context context, Intent intent) {
String action = intent.getAction();
String type = intent.getType();
//判断action事件
if (type ==null || (!Intent.ACTION_VIEW.equals(action) && !Intent.ACTION_SEND.equals(action))) {
return "";
}
//取出文件uri
Uri uri = intent.getData();
if (uri ==null) {
uri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
}
//获取文件真实地址
String filePath = GetFilePathFromUri.getFileAbsolutePath(context, uri);
if (TextUtils.isEmpty(filePath)) {
return "";
}
return filePath;
}