首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从安卓共享中排除应用程序本身(ShareActionProvider)

从安卓共享中排除应用程序本身(ShareActionProvider)的方法是通过设置Intent的标志来实现。具体步骤如下:

  1. 在AndroidManifest.xml文件中,为你的应用程序添加一个新的Activity,并设置其属性android:exported="true",以确保其他应用程序可以访问该Activity。
代码语言:txt
复制
<activity
    android:name=".ExcludeSelfActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
</activity>
  1. 在你的应用程序中,创建一个新的Activity类ExcludeSelfActivity,并在其onCreate()方法中获取共享的数据,并处理它。
代码语言:txt
复制
public class ExcludeSelfActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_exclude_self);

        // 获取共享的数据
        Intent intent = getIntent();
        String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);

        // 处理共享的数据
        if (sharedText != null) {
            // 排除应用程序本身的处理逻辑
            // ...
        }
    }
}
  1. 在你的应用程序中,使用ShareActionProvider来启动共享操作,并设置Intent的Component属性为刚刚创建的ExcludeSelfActivity
代码语言:txt
复制
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);

    // 获取ShareActionProvider
    MenuItem shareItem = menu.findItem(R.id.action_share);
    ShareActionProvider shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);

    // 创建共享的Intent
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(Intent.EXTRA_TEXT, "共享的文本");

    // 设置Intent的Component属性为ExcludeSelfActivity
    ComponentName componentName = new ComponentName(this, ExcludeSelfActivity.class);
    shareIntent.setComponent(componentName);

    // 设置共享的Intent
    shareActionProvider.setShareIntent(shareIntent);

    return true;
}

通过以上步骤,你的应用程序将能够从安卓共享中排除应用程序本身,只将共享数据传递给其他应用程序。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android中我为什么发不了邮件--Android邮件发送详解

Android中我为什么发不了邮件???我手机里明明有邮件客户端的,可我为什么不能调用它发送邮件???相信这是很多人会问的问题,手机里有Email客户端,可是偏偏在自己的应用里调用不了,抑或是不知道怎么调用,还有的是一直认为自己写对了,可是偏偏不能调用,无奈之下只能却网上找段代码粘贴上,ok,可以了。。可是你知道别人的代码为什么可以?你知道调用Email是怎么工作的吗?如果你又像给多人发邮件,还想发送附件,怎么做?又迷糊了吧?所以需要搞懂原理才能一通百通,举一反三,而这就是这篇博文要写的,也是你可以在这篇博文中学到的。

04

自定义Adapter中的跳转事件如何写

/******************************** 下面是viewPager的点击事件  2015-9-14晚10.30点    *********************************/ itemView.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { // TODO 点击跳转的界面 //第一步需要获取该条itemView的新闻id //JSONObject dataObj = (JSONObject) mJsonArray.get(position); TextView idtView =(TextView) view.findViewById(R.id.news_header_id);//找到新闻的id TextView titleView = (TextView)view.findViewById(R.id.news_viewpager_text);//找到对应的标题 Intent intent = new Intent(mContext,News_DetailActivity.class); String id=(String) idtView.getText(); String news_title = (String) titleView.getText(); intent.putExtra("id", id); intent.putExtra("name", news_title); mContext.startActivity(intent); } });

03

重识Activity——生命周期详解

1. 单个Activity生命周期 *  显示状态——onCreate()、onStart()、onResume() * 隐藏状态——onPause():部分可见、onStop():隐藏,黑屏状态 * 销毁——onDestroy() 2. 多个Activity生命周期交互 * 第一个Activity启动——依次调用onCreate()、onStart()、onResume () * 第二个Activity启动——第一个activity调用onPause (),第二个activity调用onCreate ()、onStart()、onResume(),第一个Activity调用onStop() * 再次返回第一个activity—— 第二个Activity调用onPause ()、第一个Activity调用onRestart():不用再onCreate()、onStart()、onResume ();此时第二个Activity调用onStop()、onDestroy(),此时第二个Activity生命周期结束 3. Activity生命周期交互设计思想 * 例子:当处在音乐播放页面时,此时来电,音乐activity调用onPause (),重写该方法暂停音乐,否则会影响通话; * 另一方面,音乐activity调用onPause ()后,紧接着调用onStop(),电话结束后,再次回到音乐播放页面就是黑屏了 4. 横竖屏切换 * 切换时相当于创建了一个新的Activity,原有的activity生命周期结束 * 切换时,可以通过onSaveInstanceState 方法中Bundle对象保存切换前activity信息,然后在onCreate()的Bundle对象获取 5. Activity生命周期的应用 * onPause ()——添加暂停该页面的其他操作 * onResume ()——当返回页面时,添加恢复原有页面的操作 * onDestroy()——结束该页面时,释放该页面其他操作的资源 6. 启动Activity * 直接启动 *  * 只通过Intent——Intent intent=new Intent(one.this, two.class); * 辅以Component——Intent intent=new Intent();ComponentName component=new ComponentName(one.this, two.class);  intent.setComponent(component );startActivity(intent); * 匿名启动 *  * 在AndroidManifest中对应的activity添加<intent-filter>——》<action android :name=“1”>——》intent.setAction("1");——》startActivity(intent); * 启动系统常见Activity *  * 启动浏览器——intent.setAction(Intent.ACTION_VIEW);Uri url=Uri.parse("http://www.imooc.com"); intent.setData(url);startActivity(intent); * 启动相册——intent.setAction(Intent.ACTION_GET_CONTENT);intent.setType(“image/*”);startActivity(intent); * 发送短信——intent.setAction(Intent.ACTION_SEND);intent.setType(“text/plain”);intent.putExtra(Intent.EXTRA_TEXT,"hello !");startActivity(intent); * 打开电话——intent.setAction(Intent.ACTION_VIEW );Uri url=Uri.parse("tel:123456"); intent.setData(url); startActivity(intent); * 其它页面可以通过Android文档查看Intent

03
领券