【问题标题】:Share links button for all apps in androidandroid中所有应用程序的共享链接按钮
【发布时间】:2018-07-10 22:16:38
【问题描述】:

我的 android 项目中有下一个分享 ImageView 按钮:

final ImageView share = findViewById(R.id.btn_share);
 share.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent myIntent = new Intent(Intent.ACTION_SEND);
                myIntent.setType("text/plane");
                myIntent.putExtra(Intent.EXTRA_TEXT, some_url_from_my_app);
                startActivity(Intent.createChooser(myIntent, "Share Using"));
            }
        });

我的问题是,当我点击按钮时,我只看到几个应用程序,而不是我想要的手机中的所有应用程序,例如 Facebook、Instagarm 等...

我应该怎么做才能看到我手机中的所有应用程序以便能够将链接共享给所有这些应用程序?

【问题讨论】:

    标签: java android android-intent share


    【解决方案1】:

    取出 startActivity 行。

    在 res 文件夹中创建一个名为 menu 的 XML 资源文件夹。 创建一个布局menu.xml:

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/share_menu">
        <item
            android:id="@+id/menu_item_share"
            android:showAsAction="ifRoom"
            android:title="Share"
            android:actionProviderClass=
                "android.widget.ShareActionProvider" />
    </menu>
    

    确保覆盖 onCreateOptionsMenu:

    import android.support.v4.view.MenuItemCompat;
    import android.support.v7.widget.ShareActionProvider;
    ...
    private ShareActionProvider mShareActionProvider;
    ...
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate menu resource file.
        // R.<XML resource folder>.<XML layout filename>
        getMenuInflater().inflate(R.menu.menu, menu);
    
        
    
        // Locate MenuItem with ShareActionProvider
        MenuItem shareItem = menu.findItem(R.id.menu_item_share);
    
        // Fetch and store ShareActionProvider
        mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
    
        // Return true to display menu
        return true;
    }
    
    // Call to update the share intent
    private void setShareIntent(Intent shareIntent) {
        if (mShareActionProvider != null) {
            mShareActionProvider.setShareIntent(shareIntent);
        }
    }
    

    【讨论】:

    • 嗨,这个分享按钮是用于菜单项的,而不是我的情况下的常规按钮......我在页面中间有一个按钮,当我点击它时,我分享了一些链接,分享操作对我有用,但没有显示我手机中所有已安装的应用程序。
    • @Danny 有没有办法可以分享截图;以及,公开了有关您的代码的更多信息?
    【解决方案2】:

    经过一些调查和几个小时后,我设法解决了这个问题。 我所做的是而不是做:

    myIntent.setType("text/plane");
    

    我是这样写的:

    myIntent.setType("text/*");
    

    这向我展示了所有用于共享的应用程序。 关于 Facebook 分享,我使用了 Facebook sdk。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-23
      • 2018-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多