Raise Hand using PubSub - Android
Let us see, how we can use PubSub to implement Raise Hand functionality. If you are not familiar with the PubSub mechanism and pubSub class, you can follow this guide.
Implementing Raise Hand
- First step in raise hand is choosing the topic which all the participants will publish and subscribe to know some participant raise their hand. We will be using
RAISE_HANDas the topic for this one. - On the raiseHand button, publish any message to that specific topic.
- Kotlin
- Java
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//...
findViewById(R.id.btnRaiseHand).setOnClickListener(view -> sendRaiseHandMessage());
}
private fun sendRaiseHandMessage() {
val publishOptions = PubSubPublishOptions()
publishOptions.setPersist(false)
// Sending the Message using the publish method
meeting!!.pubSub.publish("RAISE_HAND", "Raise Hand", publishOptions)
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat);
//...
findViewById(R.id.btnRaiseHand).setOnClickListener(view -> sendRaiseHandMessage());
}
private void sendRaiseHandMessage()
{
PubSubPublishOptions publishOptions = new PubSubPublishOptions();
publishOptions.setPersist(false);
// Sending the Message using the publish method
meeting.pubSub.publish("RAISE_HAND", "Raise Hand", publishOptions);
}
}
- Now let us show an alert to all the participants showing who raised the hand.
- Kotlin
- Java
class MainActivity : AppCompatActivity() {
// PubSubMessageListener
val pubSubMessageListener = object : PubSubMessageListener {
override fun onMessageReceived(message: PubSubMessage) {
Log.d("VideoSDK", "RAISE_HAND: ${message.message}")
}
override fun onOldMessagesReceived(messages: List<PubSubMessage>) {
// Persisted message list
Log.d("VideoSDK", "RAISE_HAND: $messages")
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_chat)
//...
// Subscribe for 'RAISE_HAND' topic
meeting!!.pubSub.subscribe("RAISE_HAND", pubSubMessageListener)
}
}
public class MainActivity extends AppCompatActivity {
// PubSubMessageListener
PubSubMessageListener pubSubMessageListener = new PubSubMessageListener() {
@Override
public void onMessageReceived(PubSubMessage message) {
Log.d("VideoSDK", "RAISE_HAND: " + message.getMessage());
}
@Override
public void onOldMessagesReceived(List<PubSubMessage> messages) {
// Persisted message list
Log.d("VideoSDK", "RAISE_HAND: " + messages);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//..
// Subscribe for 'RAISE_HAND' topic
meeting.pubSub.subscribe("RAISE_HAND", pubSubMessageListener);
}
}
API Reference
The API references for all the methods and events utilised in this guide are provided below.
Got a Question? Ask us on discord

