<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
	<channel>
		<title>Make Your App Work with Android Wear in 4 Easy Steps | Infinum</title>
		<atom:link href="https://infinum.com/blog/make-your-app-work-with-android-wear-in-4-easy-steps/feed/" rel="self" type="application/rss+xml" />
		<link>https://infinum.com/blog/make-your-app-work-with-android-wear-in-4-easy-steps/</link>
		<description>Building digital products</description>
		<lastBuildDate>Mon, 04 May 2026 14:05:18 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>7876https://infinum.com/uploads/2014/08/make-your-app-work-with-android-wear-in-4-easy-steps-0.webp</url>
				</image>
				<title>Make Your App Work with Android Wear in 4 Easy Steps</title>
				<link>https://infinum.com/blog/make-your-app-work-with-android-wear-in-4-easy-steps/</link>
				<pubDate>Mon, 25 Aug 2014 22:13:00 +0000</pubDate>
				<dc:creator>Ivan Kocijan</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/make-your-app-work-with-android-wear-in-4-easy-steps/</guid>
				<description>
					<![CDATA[<p>Google introduced the full Android Wear SDK and now developers can finally start building awesome smartwatch applications. </p>
<p>The post <a href="https://infinum.com/blog/make-your-app-work-with-android-wear-in-4-easy-steps/">Make Your App Work with Android Wear in 4 Easy Steps</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-186"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-92">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-95"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-93">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-94'
	>
	This July, at its annual developer conference, Google introduced the full Android Wear SDK and now developers can finally start building awesome smartwatch applications. Want to learn how to make your existing apps work with Android Wear? Then read on!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-98"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-96">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-97'
	>
	Unless you’ve spent the last year on a deserted island, you’ve probably heard about Android Wear. It’s an extension of the Android operating system for wearable devices. Although there should be many different wearable devices in the future, the industry is focused on smartwatches at the moment.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-101"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-99"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-100">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/08/make-your-app-work-with-android-wear-in-4-easy-steps-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="500"
															width="700"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-104"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-102">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-103'
	>
	Several big players have already launched their devices that support the Wear SDK – for example LG with its <a href="http://www.lg.com/global/gwatch/index.html#main">G watch</a> or Samsung with <a href="http://www.samsung.com/us/mobile/wearable-tech/all-products?filter=gear-2">Gear 2</a>. Probably the most anticipated smartwatch, the one we use in visual illustrations for this article, is <a href="https://moto360.motorola.com/">Moto 360</a> by Motorola Mobility. Luckily for all of us geeks out there, it should be launched in a few weeks.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-107"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-105">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-106'
	>
	If you are a developer, Android Wear gives you a chance to <strong>improve mobile experience</strong> and make your applications more <strong>accessible for users</strong>. If you want, you can develop Android Wear applications in the same way you develop smartphone applications, but SDK also allows you to extend your current applications. In this blog post, I will show you how to extend your application notifications to Android Wear and add some cool wear actions.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-110"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-108">
	<h2	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-109'
	>
	What are we modifying?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-111">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-112'
	>
	I’ll be modifying one of our existing apps called the Queueing app.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-116"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-114">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-115'
	>
	This app was developed for Erste &amp; Steiermärkische Bank and it allows anyone with a smartphone to find the nearest branch office and remotely reserve a spot in the queue. The Queueing app can send a notification when users are next in line so they can head to the bank and grab their spot. If users change their mind, they have an option to delete their ticket and leave the queue. In order to use these features, they need to take out their mobile phones and open the app.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-119"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-117"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-118">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/08/make-your-app-work-with-android-wear-in-4-easy-steps-2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="500"
															width="700"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-122"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-120">
	<h2	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-121'
	>
	Android wear makes things a lot easier</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-125"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-123">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-124'
	>
	With Android wear, we can give our users the ability to use these features without reaching for their phones. We are going to modify the existing application and users with a smartwatch will get a notification on their wrists with information on how many people are in front of them.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-128"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-126">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-127'
	>
	Notifications are a cool addition, but we can do better. We will also add two more custom wear actions:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-131"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-129">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-130'
	>
	<li><strong>”Snooze” notification</strong> – If users swipe the notification to the right, they will be offered the possibility to “snooze” it. For example, if there are 9 people in front of you, you can choose to be reminded when you’re 6th in line.</li><li><strong>Cancel ticket</strong> – By swiping to the right once more, users will be able to cancel their current ticket and remove themselves from the queue.</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-134"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-132">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-133'
	>
	The main idea behind these actions is to give our users the ability to interact with our application without the need to pull their smartphones out of their pockets. Just bear in mind that users will be able to use these actions only if they are not next in line. If they are, they will only get a notification indicating that there are no more people in front of them.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-137"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-135">
	<h2	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-136'
	>
	Modifying the existing app</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-140"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-138">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-139'
	>
	Here is what you need to do in order to get the most out of Android Wear notifications:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-143"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-141">
	<h3	class='typography typography--size-24-text js-typography block-heading__heading'
	data-id='es-142'
	>
	1. Add the latest support library to your application’s build.gradle file</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-146"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-144">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-145'
	>
	I hope you use Android Studio because the <a href="https://infinum.com/blog/eclipse-is-dead-for-android-development-and-i-helped-kill-it/">Eclipse is dead</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-148"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-java github-light" data-language="java" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">dependencies </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    compile ’</span><span class="token" style="color: #24292e;">com</span><span class="token">.andro</span><span class="token" style="color: #24292e;">i</span><span class="token">d</span><span class="token" style="color: #24292e;">.suppor</span><span class="token">t</span><span class="token" style="color: #d73a49;">:</span><span class="token">support</span><span class="token" style="color: #d73a49;">-</span><span class="token">v4</span><span class="token" style="color: #d73a49;">:</span><span class="token" style="color: #005cc5;">20.0</span><span class="token" style="color: #d73a49;">+</span><span class="token">’
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-151"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-149">
	<h3	class='typography typography--size-24-text js-typography block-heading__heading'
	data-id='es-150'
	>
	2. Add Android wear specific actions to existing notification</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-154"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-152">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-153'
	>
	We are using NotificationCompat.Builder class because, when building with this class, the system takes care of displaying notifications properly, whether they appear on a phone or smartwatch.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-156"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-java github-light" data-language="java" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">standard notification code</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token" style="color: #24292e;">NotificationCompat</span><span class="token">.</span><span class="token" style="color: #24292e;">Builder</span><span class="token"> </span><span class="token" style="color: #24292e;">mBuilder</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #d73a49;">new</span><span class="token"> NotificationCompat</span><span class="token">.</span><span class="token" style="color: #6f42c1;">Builder</span><span class="token">(</span><span class="token">mContext</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">.</span><span class="token" style="color: #6f42c1;">setSmallIcon</span><span class="token">(</span><span class="token" style="color: #24292e;">R</span><span class="token">.</span><span class="token" style="color: #24292e;">drawable</span><span class="token">.</span><span class="token" style="color: #24292e;">icon_notification_queueing_seethrough</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">.</span><span class="token" style="color: #6f42c1;">setContentTitle</span><span class="token">(</span><span class="token" style="color: #24292e;">mContext</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getString</span><span class="token">(</span><span class="token" style="color: #24292e;">R</span><span class="token">.</span><span class="token" style="color: #24292e;">string</span><span class="token">.</span><span class="token" style="color: #24292e;">redomat</span><span class="token">)</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">.</span><span class="token" style="color: #6f42c1;">setContentText</span><span class="token">(</span><span class="token">message</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">Actions &quot;Snooze&quot; notification and delete ticket (remove from queue) are only available if user is not next in line</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token" style="color: #d73a49;">if</span><span class="token"> </span><span class="token">(</span><span class="token" style="color: #d73a49;">!</span><span class="token" style="color: #6f42c1;">getIsUserNextInLine</span><span class="token">(</span><span class="token">)</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">User click on action triggers broadcast which is received by WearActionReceiver.class</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">Put notification id and flag WEAR_ACTION. </span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">Using these parameters WearActionReceiver.class will know which action was clicked</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">Intent</span><span class="token"> </span><span class="token" style="color: #24292e;">notifyNextTimeIntent</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #d73a49;">new</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Intent</span><span class="token">(</span><span class="token">mContext</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">WearActionReceiver</span><span class="token">.</span><span class="token" style="color: #24292e;">class</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">notifyNextTimeIntent</span><span class="token">.</span><span class="token" style="color: #6f42c1;">putExtra</span><span class="token">(</span><span class="token" style="color: #24292e;">WearActionReceiver</span><span class="token">.</span><span class="token" style="color: #24292e;">NOTIFICATION_ID_STRING</span><span class="token">,</span><span class="token"> NOTIFICATION_ID</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">notifyNextTimeIntent</span><span class="token">.</span><span class="token" style="color: #6f42c1;">putExtra</span><span class="token">(</span><span class="token" style="color: #24292e;">WearActionReceiver</span><span class="token">.</span><span class="token" style="color: #24292e;">WEAR_ACTION</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">WearActionReceiver</span><span class="token">.</span><span class="token" style="color: #24292e;">SNOOZE_NOTIFICATION</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">PendingIntent</span><span class="token"> </span><span class="token" style="color: #24292e;">pendingIntentNotify</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">PendingIntent</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getBroadcast</span><span class="token">(</span><span class="token">mContext</span><span class="token">,</span><span class="token"> WEAR_REQUEST_CODE</span><span class="token">,</span><span class="token"> notifyNextTimeIntent</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">PendingIntent</span><span class="token">.</span><span class="token" style="color: #24292e;">FLAG_UPDATE_CURRENT</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">text shown in notification</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">String</span><span class="token"> </span><span class="token" style="color: #24292e;">notifyAgainText</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">String</span><span class="token">.</span><span class="token" style="color: #6f42c1;">format</span><span class="token">(</span><span class="token" style="color: #24292e;">mContext</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getString</span><span class="token">(</span><span class="token" style="color: #24292e;">R</span><span class="token">.</span><span class="token" style="color: #24292e;">string</span><span class="token">.</span><span class="token" style="color: #24292e;">notification_next_in_line</span><span class="token">)</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #6f42c1;">getNumberInLine</span><span class="token">(</span><span class="token">)</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">Wear action - this action will be shown only on Android Wear devices</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">Set action icon, text and pending intent which will be executed on click</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">When user clicks on this icon he will &quot;snooze&quot; notification</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">NotificationCompat</span><span class="token">.</span><span class="token" style="color: #24292e;">Action</span><span class="token"> </span><span class="token" style="color: #24292e;">actionNotifyNextTime</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #d73a49;">new</span><span class="token"> NotificationCompat</span><span class="token">.</span><span class="token" style="color: #24292e;">Action</span><span class="token">.</span><span class="token" style="color: #6f42c1;">Builder</span><span class="token">(</span><span class="token" style="color: #24292e;">R</span><span class="token">.</span><span class="token" style="color: #24292e;">drawable</span><span class="token">.</span><span class="token" style="color: #24292e;">ic_launcher</span><span class="token">,</span><span class="token"> notifyAgainText</span><span class="token">,</span><span class="token"> pendingIntentNotify</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">build</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">The same as Intent for &quot;snooze&quot; but this time set another flag</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">Intent</span><span class="token"> </span><span class="token" style="color: #24292e;">cancelTicketIntent</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #d73a49;">new</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Intent</span><span class="token">(</span><span class="token">mContext</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">WearActionReceiver</span><span class="token">.</span><span class="token" style="color: #24292e;">class</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">cancelTicketIntent</span><span class="token">.</span><span class="token" style="color: #6f42c1;">putExtra</span><span class="token">(</span><span class="token" style="color: #24292e;">WearActionReceiver</span><span class="token">.</span><span class="token" style="color: #24292e;">NOTIFICATION_ID_STRING</span><span class="token">,</span><span class="token"> NOTIFICATION_ID</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">cancelTicketIntent</span><span class="token">.</span><span class="token" style="color: #6f42c1;">putExtra</span><span class="token">(</span><span class="token" style="color: #24292e;">WearActionReceiver</span><span class="token">.</span><span class="token" style="color: #24292e;">WEAR_ACTION</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">WearActionReceiver</span><span class="token">.</span><span class="token" style="color: #24292e;">CANCEL_TICKET</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">PendingIntent</span><span class="token"> </span><span class="token" style="color: #24292e;">pendingIntentCancel</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">PendingIntent</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getBroadcast</span><span class="token">(</span><span class="token">mContext</span><span class="token">,</span><span class="token"> WEAR_REQUEST_CODE_2</span><span class="token">,</span><span class="token"> cancelTicketIntent</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">PendingIntent</span><span class="token">.</span><span class="token" style="color: #24292e;">FLAG_UPDATE_CURRENT</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">     </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">When user clicks on this icon he will cancel his ticket and remove himself from the queue</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">     </span><span class="token" style="color: #24292e;">NotificationCompat</span><span class="token">.</span><span class="token" style="color: #24292e;">Action</span><span class="token"> </span><span class="token" style="color: #24292e;">actionCancel</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #d73a49;">new</span><span class="token"> NotificationCompat</span><span class="token">.</span><span class="token" style="color: #24292e;">Action</span><span class="token">.</span><span class="token" style="color: #6f42c1;">Builder</span><span class="token">(</span><span class="token" style="color: #24292e;">R</span><span class="token">.</span><span class="token" style="color: #24292e;">drawable</span><span class="token">.</span><span class="token" style="color: #24292e;">actionbar_icon_delete</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">                    </span><span class="token" style="color: #24292e;">mContext</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getString</span><span class="token">(</span><span class="token" style="color: #24292e;">R</span><span class="token">.</span><span class="token" style="color: #24292e;">string</span><span class="token">.</span><span class="token" style="color: #24292e;">cancel_ticket</span><span class="token">)</span><span class="token">,</span><span class="token"> pendingIntentCancel</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">                    </span><span class="token">.</span><span class="token" style="color: #6f42c1;">build</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">Create new WearableExtender object and add actions</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">NotificationCompat</span><span class="token">.</span><span class="token" style="color: #24292e;">WearableExtender</span><span class="token"> </span><span class="token" style="color: #24292e;">extender</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #d73a49;">new</span><span class="token"> NotificationCompat</span><span class="token">.</span><span class="token" style="color: #6f42c1;">WearableExtender</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">extender</span><span class="token">.</span><span class="token" style="color: #6f42c1;">addAction</span><span class="token">(</span><span class="token">actionNotifyNextTime</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">extender</span><span class="token">.</span><span class="token" style="color: #6f42c1;">addAction</span><span class="token">(</span><span class="token">actionCancel</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">Extend Notification builder</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #24292e;">mBuilder</span><span class="token">.</span><span class="token" style="color: #6f42c1;">extend</span><span class="token">(</span><span class="token">extender</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">Get notification manager</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token" style="color: #24292e;">NotificationManager</span><span class="token"> </span><span class="token" style="color: #24292e;">mNotificationManager</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token">
</span></span><span class="line"><span class="token">                </span><span class="token">(</span><span class="token">NotificationManager</span><span class="token">)</span><span class="token"> </span><span class="token" style="color: #24292e;">mContext</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getSystemService</span><span class="token">(</span><span class="token" style="color: #24292e;">Context</span><span class="token">.</span><span class="token" style="color: #24292e;">NOTIFICATION_SERVICE</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">show notification</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token" style="color: #24292e;">mNotificationManager</span><span class="token">.</span><span class="token" style="color: #6f42c1;">notify</span><span class="token">(</span><span class="token">NOTIFICATION_ID</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">mBuilder</span><span class="token">.</span><span class="token" style="color: #6f42c1;">build</span><span class="token">(</span><span class="token">)</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-159"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-157">
	<h3	class='typography typography--size-24-text js-typography block-heading__heading'
	data-id='es-158'
	>
	3. Add Broadcast Receiver</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-162"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-160">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-161'
	>
	This class will receive the clicked wear action and either “snooze” the notification or remove the user from the queue. It will also dismiss notifications on Android Wear.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-164"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-java github-light" data-language="java" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">class</span><span class="token"> </span><span class="token" style="color: #6f42c1;">WearActionReceiver</span><span class="token"> </span><span class="token" style="color: #d73a49;">extends</span><span class="token"> </span><span class="token" style="color: #6f42c1;">BroadcastReceiver</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">static</span><span class="token"> </span><span class="token" style="color: #d73a49;">final</span><span class="token"> </span><span class="token" style="color: #24292e;">String</span><span class="token"> </span><span class="token" style="color: #24292e;">NOTIFICATION_ID_STRING</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">NotificationId</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">static</span><span class="token"> </span><span class="token" style="color: #d73a49;">final</span><span class="token"> </span><span class="token" style="color: #24292e;">String</span><span class="token"> </span><span class="token" style="color: #24292e;">WEAR_ACTION</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">WearAction</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">static</span><span class="token"> </span><span class="token" style="color: #d73a49;">final</span><span class="token"> </span><span class="token" style="color: #d73a49;">int</span><span class="token"> </span><span class="token" style="color: #24292e;">SNOOZE_NOTIFICATION</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #005cc5;">1</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">static</span><span class="token"> </span><span class="token" style="color: #d73a49;">final</span><span class="token"> </span><span class="token" style="color: #d73a49;">int</span><span class="token"> </span><span class="token" style="color: #24292e;">CANCEL_TICKET</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #005cc5;">2</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">@</span><span class="token" style="color: #d73a49;">Override</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #d73a49;">public</span><span class="token"> </span><span class="token" style="color: #d73a49;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">onReceive</span><span class="token"> </span><span class="token">(</span><span class="token" style="color: #24292e;">Context</span><span class="token"> </span><span class="token" style="color: #e36209;">context</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #24292e;">Intent</span><span class="token"> </span><span class="token" style="color: #e36209;">intent</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #d73a49;">if</span><span class="token"> </span><span class="token">(</span><span class="token">intent </span><span class="token" style="color: #d73a49;">!=</span><span class="token"> </span><span class="token" style="color: #005cc5;">null</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #d73a49;">int</span><span class="token"> </span><span class="token" style="color: #24292e;">notificationId</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">intent</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getIntExtra</span><span class="token">(</span><span class="token">NOTIFICATION_ID_STRING</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #005cc5;">0</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #24292e;">NotificationManager</span><span class="token"> </span><span class="token" style="color: #24292e;">manager</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token">(</span><span class="token">NotificationManager</span><span class="token">)</span><span class="token"> </span><span class="token" style="color: #24292e;">context</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getSystemService</span><span class="token">(</span><span class="token" style="color: #24292e;">Context</span><span class="token">.</span><span class="token" style="color: #24292e;">NOTIFICATION_SERVICE</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #24292e;">manager</span><span class="token">.</span><span class="token" style="color: #6f42c1;">cancel</span><span class="token">(</span><span class="token">notificationId</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #d73a49;">int</span><span class="token"> </span><span class="token" style="color: #24292e;">action</span><span class="token"> </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">intent</span><span class="token">.</span><span class="token" style="color: #6f42c1;">getIntExtra</span><span class="token">(</span><span class="token">WEAR_ACTION</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #005cc5;">0</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #d73a49;">switch</span><span class="token"> </span><span class="token">(</span><span class="token">action</span><span class="token">)</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">                </span><span class="token" style="color: #d73a49;">case</span><span class="token"> SNOOZE_NOTIFICATION</span><span class="token" style="color: #d73a49;">:</span><span class="token">
</span></span><span class="line"><span class="token">                    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">Code for notification snooze</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">                    </span><span class="token" style="color: #d73a49;">break</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">                </span><span class="token" style="color: #d73a49;">case</span><span class="token"> CANCEL_TICKET</span><span class="token" style="color: #d73a49;">:</span><span class="token">
</span></span><span class="line"><span class="token">                    </span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">code for removing the user from the queue</span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">                    </span><span class="token" style="color: #d73a49;">break</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">                </span><span class="token" style="color: #d73a49;">default</span><span class="token" style="color: #d73a49;">:</span><span class="token">
</span></span><span class="line"><span class="token">                    </span><span class="token" style="color: #d73a49;">break</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">       </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-167"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-165">
	<h3	class='typography typography--size-24-text js-typography block-heading__heading'
	data-id='es-166'
	>
	4. Declare WearActionReceiver in the manifest file</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-169"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-java github-light" data-language="java" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token"> </span><span class="token" style="color: #d73a49;">&lt;</span><span class="token">receiver android</span><span class="token" style="color: #d73a49;">:</span><span class="token">name</span><span class="token" style="color: #d73a49;">=</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">co.infinum.WearActionReceiver</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-172"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-170"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-171">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2014/08/make-your-app-work-with-android-wear-in-4-easy-steps-3.webp"
					class="image__img block-media__image-img"
					alt=""
										height="500"
															width="700"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-175"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-173">
	<h2	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-174'
	>
	Updates – Make them happen</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-178"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-176">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-177'
	>
	As you can see, with just a few extra lines of code, we gave our users an option to interact with our application without reaching for their phones. Considering the fact that implementing support for Android Wear is really easy, I believe that every Android dev should be aiming to update their apps as soon as possible.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-181"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-179">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-180'
	>
	Maybe now you are thinking; “Heck, why would I do that when the majority of users won’t buy a fancy smartwatch?” That’s a valid concern, especially when we know that the current generation of smartwatches costs between $200 and $300.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-184"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-182">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-183'
	>
	But like with any other technology, the price of Android Wear devices will go down and they will become more widespread. Making sure your app supports this innovative technology is a smart investment for the future.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/make-your-app-work-with-android-wear-in-4-easy-steps/">Make Your App Work with Android Wear in 4 Easy Steps</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>