如何正确创建像 Tez 一样的 Intent 引用?

How to properly create an Intent to refer like Tez?

在我的应用程序中,我必须添加一个意图来分享我的应用程序。我查看了 Tez,它共享应用程序图标以及包含超链接的文本。如何实现?

你可以试试这个..

    Uri uri = Uri.fromFile(imageFile);
    Intent intent1 = new Intent();
    intent1.setAction(Intent.ACTION_SEND);
    intent1.setType("image/*");
    intent1.putExtra(android.content.Intent.EXTRA_SUBJECT, "App Name");
    intent1.putExtra(Intent.EXTRA_TEXT, "Download the app from google play store now - "+ APP_STORE_URL);
    intent1.putExtra(Intent.EXTRA_STREAM, uri);
    try {
        startActivity(Intent.createChooser(intent1, "Share"));
    } catch (ActivityNotFoundException e) {
        Toast.makeText(getContext(), "please try again", Toast.LENGTH_SHORT).show();
    }

这会起作用:将图像文件和文本框放入共享意图

试试这个代码:

int applicationNameId = context.getApplicationInfo().labelRes;
final String appPackageName = context.getPackageName();
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_SUBJECT, activity.getString(applicationNameId));
String text = "Install this cool application: ";
String link = "https://play.google.com/store/apps/details?id=" + appPackageName;
i.putExtra(Intent.EXTRA_TEXT, text + " " + link);
startActivity(Intent.createChooser(i, "Share link:"));

如果你想从你的开发者那里分享你的其他应用程序。帐户你可以做这样的事情

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://play.google.com/store/apps/developer? 
id=Your_Publisher_Name"));
startActivity(intent);

您似乎想创建一个引荐来源链接,尝试使用 this firebase service.Once 您已获得引荐来源 URL ready.Create 的意图如下分享一下。

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, subjectText);
shareIntent.putExtra(Intent.EXTRA_HTML_TEXT, "Hey!Checkout this app "+ APP_STORE_URL); 
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(Intent.createChooser(shareIntent, "Invite Friends"));

**注意:**如果您使用动态链接,您可以在社交元标记参数中添加您的应用图标

试试这个

Uri imageUri = Uri.parse("android.resource://" + getPackageName() + "/drawable/" + "ic_launcher");
Intent shareIntent = new Intent(); 
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello" + REFERRAL_URL);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.setType("image/jpeg");
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, "send"));`

将此代码复制到您的 toolbar/menu

    try {
    Intent i = new Intent(Intent.ACTION_SEND);
    i.setType("text/plain");
    i.putExtra(Intent.EXTRA_SUBJECT, "Your Subject");
    String text = "\nYour description";
    text = text + "https://play.google.com/store/apps/details?id=apppackagename \n\n";
    i.putExtra(Intent.EXTRA_TEXT, text);
    startActivity(Intent.createChooser(i, "Choose "));
    } 
    catch(Exception e) {
    //e.toString();
}
Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("image/jpeg");

    /**This is the image to share**/
    Bitmap icon = BitmapFactory.decodeResource(getResources(),
            R.drawable.ic_launcher);

    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.TITLE, "title");
    values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
    Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
            values);


    OutputStream outstream;
    try {
        outstream = getContentResolver().openOutputStream(uri);
        icon.compress(Bitmap.CompressFormat.JPEG, 100, outstream);
        outstream.close();
    } catch (Exception e) {
        System.err.println(e.toString());
    }

    share.putExtra(Intent.EXTRA_STREAM, uri);
    share.putExtra(Intent.EXTRA_TEXT, "YOUR_BODY_TEXT_HERE");
    startActivity(Intent.createChooser(share, "Share Image"));

我已经测试了上面的代码,它符合您的要求。

PS: 您需要有 WRITE_EXTERNAL_STORAGE 权限。务必按照SDK的.

包含并处理

This code will share both the files together

    ArrayList<Uri> myFilesUriList = new ArrayList<>(); 
    myFilesUriList.add(); // add your image path as uri
    myFilesUriList.add(); // add your text file path as uri

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_SEND_MULTIPLE);

    intent.setType("image/*");
    intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, myFilesUriList);
    startActivity(intent);
 This code will share both the files Separately
First share the file then on Activity Result, share text Separately
        ArrayList<Uri> uriArrayList = new ArrayList<>();
        uriArrayList.add(); // add your image path as uri

        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_SEND_MULTIPLE);
        intent.setType("image/*");
        intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uriArrayList);
        startActivityForResult(intent, 156);

        @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == 156) {
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            sharingIntent.setType("text/*");
            sharingIntent.putExtra(Intent.EXTRA_SUBJECT, ""); //"Subject here"
            sharingIntent.putExtra(Intent.EXTRA_TEXT, "shareBody ");
            sharingIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
            startActivity(Intent.createChooser(sharingIntent, "Share text via.."));

        }
    }

它是 URL 元数据。这些元数据作为服务器的响应返回。

<meta property="og:site_name" content="San Roque 2014 Pollos">
<meta property="og:title" content="San Roque 2014 Pollos" />
<meta property="og:description" content="Programa de fiestas" />
<meta property="og:image" itemprop="image" content="http://pollosweb.wesped.es/programa_pollos/play.png">
<meta property="og:type" content="website" />
<meta property="og:updated_time" content="1440432930" />

Showing Thumbnail for link in WhatsApp || og:image meta-tag doesn't work

第 1 步 - 阅读您要分享的图片 第 2 步 - 将该图像存储在您的外部存储器中 第 3 步 - 通过 intent

分享
// Extract Bitmap from ImageView drawable
Drawable drawable = ContextCompat.getDrawable(this, R.mipmap.launcher); // your image
if (drawable instanceof BitmapDrawable) {
    Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();

    // Store image to default external storage directory
    Uri bitmapUri = null;
    try {
        File file = new File(Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_DOWNLOADS), "share_image_" + System.currentTimeMillis() + ".png");
        file.getParentFile().mkdirs();
        FileOutputStream out = new FileOutputStream(file);
        bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
        out.close();
        bitmapUri = Uri.fromFile(file);
    } catch (IOException e) {
        e.printStackTrace();
    }
    if (bitmapUri != null) {
        Intent shareIntent = new Intent();
        shareIntent.putExtra(Intent.EXTRA_TEXT, "I am inviting you to join our app. A simple and secure app developed by us. https://www.google.co.in/");
        shareIntent.setAction(Intent.ACTION_SEND);
        shareIntent.putExtra(Intent.EXTRA_STREAM, bitmapUri);
        shareIntent.setType("image/*");
        startActivity(Intent.createChooser(shareIntent, "Share my app"));
    }
}

注意 - 在清单中添加 WRITE_EXTERNAL_STORAGE 权限。询问 Android 6.0 及更高版本的运行时权限。

您可能正在寻找 深度链接 到您的应用程序

https://developer.android.com/training/app-links/index.html

https://developer.android.com/training/app-links/deep-linking.html

或者,如果您想跨平台链接到您的应用程序,您可以查看 Firebase 动态链接 https://firebase.google.com/docs/dynamic-links/

private void prepareShareIntent(Bitmap bmp) {
        Uri bmpUri = getLocalBitmapUri(bmp); // see previous remote images section
        // Construct share intent as described above based on bitmap

        Intent shareIntent = new Intent();
        shareIntent = new Intent();
        shareIntent.setPackage("com.whatsapp");
        shareIntent.setAction(Intent.ACTION_SEND);

        shareIntent.putExtra(Intent.EXTRA_TEXT, getResources().getString(R.string.share_app)  );
        shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);
        shareIntent.setType("image/*");
        shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        startActivity(Intent.createChooser(shareIntent, "Share Opportunity"));

    }

private Uri getLocalBitmapUri(Bitmap bmp) {
        Uri bmpUri = null;
        File file = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "share_image_" + System.currentTimeMillis() + ".png");
        FileOutputStream out = null;
        try {
            out = new FileOutputStream(file);
            bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
            try {
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            bmpUri = Uri.fromFile(file);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        return bmpUri;
    }