簡體   English   中英

如何在我的 android 應用程序中將 Instagram 分享添加到故事按鈕

[英]how to add instagram share to story button in my android app

目前,我收到此錯誤:找不到符號 Bitmap bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.bg);

我正在嘗試將分享添加到 Instagram 故事按鈕。 我成功分享到 Whatsapp 按鈕。 但堅持這一點......有人可以幫助我嗎? 我想在 onExitButtonClicked 上添加“分享到 Instagram 故事”按鈕

public class CustomDialogClass extends Dialog implements
            android.view.View.OnClickListener {
    
        public CustomDialogListener listener;
        public Dialog d;
        public Button yes, no, exit;
    
        public CustomDialogClass(@NonNull Context context,
                                 CustomDialogListener listener) {
            super(context);
            this.listener = listener ;
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.custom_dialog);
            yes = (Button) findViewById(R.id.btn_yes);
            no = (Button) findViewById(R.id.btn_no);
            exit = (Button) findViewById(R.id.btn_exit);
            yes.setOnClickListener(this);
            no.setOnClickListener(this);
            exit.setOnClickListener(this);
    
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.btn_yes:
                    listener.onYesButtonClicked();
                    break;
                case R.id.btn_no:
                    listener.onNoButtonClicked();
                    break;
                case R.id.btn_exit:
                    listener.onExitButtonClicked();
                    break;
                default:
                    break;
            }
            dismiss();
        }
    
        public interface CustomDialogListener {
            public void onYesButtonClicked() ;
            public void onNoButtonClicked() ;
            public void onExitButtonClicked() ;
        }
    
    }

    public void onBackPressed() {
            CustomDialogClass cd = new CustomDialogClass(this, new CustomDialogClass.CustomDialogListener() {
                @Override
                public void onYesButtonClicked() {
                    try {
                        Intent sendIntent = new Intent();
                        sendIntent.setAction(Intent.ACTION_SEND);
                        sendIntent.putExtra(Intent.EXTRA_TEXT, "sample text");
                        sendIntent.setType("text/plain");
                        sendIntent.setPackage("com.whatsapp");
                        startActivity(sendIntent);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                @Override
                public void onNoButtonClicked() {
                    try {
                    Intent shareIntent = new Intent(Intent.ACTION_SEND);
                    shareIntent.setType("text/plain");
                    shareIntent.putExtra(Intent.EXTRA_TEXT, "URLyouWantToShare");
                    startActivity(Intent.createChooser(shareIntent, "Share..."));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    }

                @Override
                public void onExitButtonClicked() {
                    Bitmap bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.bg);
                    File extStorageDirectory = context.getExternalCacheDir();
                    File stickerFile = new File(extStorageDirectory, "bg.png");

                    try {
                        FileOutputStream outStream = new FileOutputStream(stickerFile);
                        bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
                        outStream.flush();
                        outStream.close();
                    } catch (IOException e) {
                        Log.e("TEST", e.getMessage());
                    }

                    Uri stickerUri = FileProvider.getUriForFile(this, "con.pixoid.upsend.fileprovider", stickerFile);
                    // Uri stickerUri = Uri.fromFile(stickerFile);
                    String linkUrl = "https://stackoverflow.com";

                    Intent intent = new Intent("com.instagram.share.ADD_TO_STORY");
                    intent.setType("image/*");
                    intent.putExtra("interactive_asset_uri", stickerUri);
                    intent.putExtra("content_url", linkUrl);
                    intent.putExtra("top_background_color", "#33FF33");
                    intent.putExtra("bottom_background_color", "#FF00FF");

                    grantUriPermission("com.instagram.android", stickerUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
                    if (getPackageManager().resolveActivity(intent, 0) != null) {
                        startActivityForResult(intent, 0);
                    }

                }


                });
            cd.show();
        }

這是一個 Kotlin 示例:

private fun shareStory(){
    val sticker = BitmapFactory.decodeResource(resources,
            R.drawable.your_logo)

    val savedImageURL: String = MediaStore.Images.Media.insertImage(
            requireContext().contentResolver,
            sticker,
            "test_image",
            "image_description"
    )


    val savedImageURI = Uri.parse(savedImageURL)

    val storiesIntent = Intent("com.instagram.share.ADD_TO_STORY").apply {
        type = "image/jpeg"
        addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
        setPackage("com.instagram.android")

        putExtra("interactive_asset_uri", savedImageURI)
        putExtra("content_url", "something");
        putExtra("top_background_color", "#33FF33");
        putExtra("bottom_background_color", "#FF00FF")
    }
    
    requireContext().grantUriPermission("com.instagram.android", savedImageURI, Intent.FLAG_GRANT_READ_URI_PERMISSION)
    this.startActivity(storiesIntent)
}

這里還有官方文檔的鏈接: Instagram Stories

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM