2017-01-10 3 views
0

Я использую пользовательские вкладки chrome для отображения различных веб-сайтов. Я добавил кнопку ссылки на общий ресурс в панели действий пользовательских вкладок.Изменение дополнительных текстовых данных в пользовательских вкладках на панели действий на рабочем столе

 builder.setActionButton(bitmap,shareLabel,createPendingShareIntent());  

и моя функция pendingintent

private PendingIntent createPendingShareIntent() { 
    Intent actionIntent = new Intent(Intent.ACTION_SEND); 
    actionIntent.setType("text/plain"); 
    actionIntent.putExtra(Intent.EXTRA_TEXT,getResources().getString(R.string.chromeextra)); 
    return PendingIntent.getActivity(
      getApplicationContext(), 0, actionIntent, 0); 
} 

теперь я хочу, чтобы изменить Intent.EXTRA_TEXT для обмена ссылками depanding, на которых ссылка открываемых пользователем.

Я знаю о PendingIntent.FLAG_UPDATE_CURRENT, но я не знаю, как использовать в этом сценарии.

ответ

0

После долгого времени я нашел решение. Я сделал это, используя широковещательный приемник.

сначала создать пользовательский класс broadcastreciever поделиться ссылкой

ShareBroadcastReceiver.java

public class ShareBroadcastReceiver extends BroadcastReceiver { 

@Override 
public 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 implementation 
Intent 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); 
Смежные вопросы