android– 如何使用选择器中的Intent作为PendingIntent

android– 如何使用选择器中的Intent作为PendingIntent,第1张

概述我想使用CustomTabs库,我需要添加一个共享菜单项.该库只接受PendingIntent实例作为菜单项的Action.我想使用以下代码确保在没有JustOnce和Always按钮的情况下始终向用户建议列表:IntentshareIntent=Intent.createChooser(intent,"Choosetheapplicationtoshare.");但问

我想使用CustomTabs库,我需要添加一个共享菜单项.该库只接受PendingIntent实例作为菜单项的Action.我想使用以下代码确保在没有Just Once和Always按钮的情况下始终向用户建议列表:

Intent shareIntent = Intent.createChooser(intent, "Choose the application to share.");

但问题是,如果我使用此选择器Intent创建PendingIntent,则CustomTabs for Chrome不会为用户激活选择器:

PendingIntent pendingIntent = PendingIntent.getActivity(context,            requestCode,            shareIntent,            PendingIntent.FLAG_UPDATE_CURRENT);

有没有办法使用Chooser的Intent作为PendingIntent?

我无法使用以下行来启动Intent,因为该库正在执行此 *** 作并且它只接受PendingIntents:

startActivity(Intent.createChooser(i, getString()));

解决方法:

您可以使用广播接收器来实现此目的.

首先创建一个自定义broadcastrecIEver类来创建要分享的选择器

SharebroadcastReceiver.java

public class SharebroadcastReceiver extends broadcastReceiver {@OverrIDepublic voID onReceive(Context context, Intent intent) {    String url = intent.getDataString();    if (url != null) {        Intent shareIntent = new Intent(Intent.ACTION_SEND);        shareIntent.setType("text/plain");        shareIntent.putExtra(Intent.EXTRA_TEXT,context.getResources().getString(R.string.Chromeextra)+ url);        Intent chooserIntent = Intent.createChooser(shareIntent, "Share url");        chooserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(chooserIntent);    }}

}

然后在自定义选项卡构建器类中设置菜单项

  String shareLabel = getString(R.string.label_action_share);Bitmap icon = BitmapFactory.decodeResource(getResources(),        androID.R.drawable.ic_menu_share);//Create a PendingIntent to your broadCastReceiver implementationIntent actionIntent = new Intent(        this.getApplicationContext(), SharebroadcastReceiver.class);PendingIntent pendingIntent =         PendingIntent.getbroadcast(getApplicationContext(), 0, actionIntent, 0);            //Set the pendingIntent as the action to be performed when the button is clicked.            intentBuilder.setActionbutton(icon, shareLabel, pendingIntent);
总结

以上是内存溢出为你收集整理的android – 如何使用选择器中的Intent作为PendingIntent全部内容,希望文章能够帮你解决android – 如何使用选择器中的Intent作为PendingIntent所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存