暂存测试几个用intent打开分享的平台

This commit is contained in:
zlzw 2023-02-07 15:45:42 +08:00
parent d14939c893
commit ce8088059a
3 changed files with 94 additions and 7 deletions

View File

@ -0,0 +1,20 @@
package com.yunbao.common.server;
import static android.content.Intent.EXTRA_CHOSEN_COMPONENT;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class ShareBroadcastReceiver extends BroadcastReceiver {
public static final int REQUEST_CODE = 888;
private static final String TAG = "分享log";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "onReceive");
Log.i(TAG, intent.getAction() + " | " + intent.getParcelableExtra(EXTRA_CHOSEN_COMPONENT));
}
}

View File

@ -1,20 +1,53 @@
package com.yunbao.common.utils;
import static android.app.PendingIntent.FLAG_IMMUTABLE;
import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
import static android.content.Intent.EXTRA_CHOSEN_COMPONENT;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.net.Uri;
import com.yunbao.common.server.ShareBroadcastReceiver;
import java.io.File;
/**
* 分享工具
*/
public class ShareUtil {
public static void share(String content) {
share(content, null);
public static void share(Context context, String content) {
share(context, content, null);
}
public static void share(Bitmap bitmap) {
share(null,bitmap);
public static void share(Context context, File image) {
share(context, null, image);
}
public static void share(String content, Bitmap bitmap) {
public static void share(Context context, String content, File image) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
if (image != null) {
Uri uri = Uri.fromFile(image);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.setType("image/*");
//当用户选择短信时使用sms_body取得文字
shareIntent.putExtra("sms_body", content);
} else {
shareIntent.setType("text/plain");
}
shareIntent.putExtra(Intent.EXTRA_TEXT, content);
//自定义选择框的标题
PendingIntent pi = PendingIntent.getBroadcast(context, ShareBroadcastReceiver.REQUEST_CODE,
new Intent(context, ShareBroadcastReceiver.class), PendingIntent.FLAG_MUTABLE);
context.registerReceiver(new ShareBroadcastReceiver(),new IntentFilter(EXTRA_CHOSEN_COMPONENT));
shareIntent = Intent.createChooser(shareIntent, null, pi.getIntentSender());
context.startActivity(Intent.createChooser(shareIntent, "Share"));
//系统默认标题
}
}

View File

@ -3,7 +3,10 @@ package com.yunbao.main.views;
import android.animation.ObjectAnimator;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Outline;
import android.net.Uri;
import android.os.Environment;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@ -11,6 +14,7 @@ import android.view.ViewGroup;
import android.view.ViewOutlineProvider;
import android.widget.ImageView;
import androidx.core.content.FileProvider;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@ -36,6 +40,7 @@ import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ShareUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.CustomViewHolder;
import com.yunbao.live.event.LiveRoomChangeEvent;
@ -54,6 +59,7 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@ -361,6 +367,34 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
.setOnBannerClickListener(new OnBannerClickListener() {
@Override
public void onBannerClick(List datas, int p) {
if (true) {
System.err.println("cache = " + mContext.getCacheDir().getAbsolutePath());
String type = "image/*";
String filename = "/ztest/myPhoto.jpg";
String mediaPath = Environment.getExternalStorageDirectory() + filename;
// Create the new Intent using the 'Send' action.
Intent share = new Intent(Intent.ACTION_SEND);
// Set the MIME type
share.setType(type);
// Create the URI from the media
File media = new File(mediaPath);
Uri uri = FileProvider.getUriForFile(mContext,
mContext.getPackageName() + ".fileprovider",
media
);
// Add the URI to the Intent.
share.putExtra(Intent.EXTRA_STREAM, uri);
share.putExtra(Intent.EXTRA_TEXT, "test");
// Broadcast the Intent.
// share.setPackage("com.whatsapp"); //WhatsApp
// share = new Intent(Intent.ACTION_VIEW, Uri.parse("https://line.me/R/share?text=test")); //Line
mContext.startActivity(Intent.createChooser(share, "Share to"));
return;
}
if (mBannerList != null) {
if (p >= 0 && p < mBannerList.size()) {
BannerBean bean = mBannerList.get(p);