1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
<h1>SDLSubscribeButton Class Reference</h1>
<h3>Section Contents</h3>
<ul>
<li><a href="#section--initWithHandler:">-initWithHandler:</a></li>
<li><a href="#section--initWithButtonName:handler:">-initWithButtonName:handler:</a></li>
<li><a href="#section-handler">handler</a></li>
<li><a href="#section-buttonName">buttonName</a></li>
</ul>
<h3>Overview</h3>
<p>Establishes a subscription to button notifications for HMI buttons. Buttons
are not necessarily physical buttons, but can also be “soft” buttons on a
touch screen, depending on the display in the vehicle. Once subscribed to a
particular button, an application will receive both
SDLOnButtonEvent and SDLOnButtonPress notifications
whenever that button is pressed. The application may also unsubscribe from
notifications for a button by invoking the SDLUnsubscribeButton
operation
<p>
When a button is depressed, an SDLOnButtonEvent notification is
sent to the application with a ButtonEventMode of BUTTONDOWN. When that same
button is released, an SDLOnButtonEvent notification is sent to the
application with a ButtonEventMode of BUTTONUP
<p>
When the duration of a button depression (that is, time between depression
and release) is less than two seconds, an SDLOnButtonPress
notification is sent to the application (at the moment the button is
released) with a ButtonPressMode of SHORT. When the duration is two or more
seconds, an SDLOnButtonPress notification is sent to the
application (at the moment the two seconds have elapsed) with a
ButtonPressMode of LONG
<p>
The purpose of SDLOnButtonPress notifications is to allow for
programmatic detection of long button presses similar to those used to store
presets while listening to the radio, for example
<p>
When a button is depressed and released, the sequence in which notifications
will be sent to the application is as follows:
<p>
For short presses:<br/>
<ul>
<li>OnButtonEvent (ButtonEventMode = BUTTONDOWN)</li>
<li>OnButtonEvent (ButtonEventMode = BUTTONUP)</li>
<li>OnButtonPress (ButtonPressMode = SHORT)</li>
</ul>
<p>
For long presses:<br/>
<ul>
<li>OnButtonEvent (ButtonEventMode = BUTTONDOWN)</li>
<li>OnButtonEvent (ButtonEventMode = BUTTONUP)</li>
<li>OnButtonPress (ButtonPressMode = LONG)</li>
</ul>
<p>
<b>HMILevel needs to be FULL, LIMITED or BACKGROUND</b>
</p></p>
<p>Since SmartDeviceLink 1.0<br/>
See SDLUnsubscribeButton</p>
<section class="section task-group-section">
<h3 id="section--initWithHandler:">
-initWithHandler:
</h3>
<p>Construct a SDLSubscribeButton with a handler callback when an event occurs.</p>
<h4>Objective-C</h4>
<pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithHandler</span><span class="p">:</span>
<span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span><span class="p">)</span><span class="nv">handler</span><span class="p">;</span></code></pre>
<h4>Swift</h4>
<pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">handler</span><span class="p">:</span> <span class="kt"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
<h4>Parameters</h4>
<dl>
<dt>handler</dt>
<dd><p>A callback that will be called when a button event occurs for the subscribed button.</p></dd>
</dl>
<div>
<h4>Return Value</h4>
<p>An SDLSubscribeButton object</p>
</div>
<h3 id="section--initWithButtonName:handler:">
-initWithButtonName:handler:
</h3>
<p>Construct a SDLSubscribeButton with a handler callback when an event occurs with a button name.</p>
<h4>Objective-C</h4>
<pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span>
<span class="nf">initWithButtonName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type%20Definitions.html#/c:SDLButtonName.h@T@SDLButtonName">SDLButtonName</a></span><span class="p">)</span><span class="nv">buttonName</span>
<span class="nf">handler</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span><span class="p">)</span><span class="nv">handler</span><span class="p">;</span></code></pre>
<h4>Swift</h4>
<pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">buttonName</span><span class="p">:</span> <span class="kt"><a href="../Type%20Definitions.html#/c:SDLButtonName.h@T@SDLButtonName">SDLButtonName</a></span><span class="p">,</span> <span class="nv">handler</span><span class="p">:</span> <span class="kt"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>
<h4>Parameters</h4>
<dl>
<dt>buttonName</dt>
<dd><p>The name of the button to subscribe to</p></dd>
<dt>handler</dt>
<dd><p>A callback that will be called when a button event occurs for the subscribed button</p></dd>
</dl>
<div>
<h4>Return Value</h4>
<p>An SDLSubscribeButton object</p>
</div>
<h3 id="section-handler">
handler
</h3>
<p>A handler that will let you know when the button you subscribed to is selected.</p>
<div class="aside aside-warning">
<p class="aside-title">Warning</p>
This will only work if you use SDLManager.
</div>
<h4>Objective-C</h4>
<pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> <span class="n"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span> <span class="n">_Nonnull</span> <span class="n">handler</span><span class="p">;</span></code></pre>
<h4>Swift</h4>
<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">handler</span><span class="p">:</span> <span class="kt"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
<h3 id="section-buttonName">
buttonName
</h3>
<p>The name of the button to subscribe to
@discussion An enum value, see <i>SDLButtonName</i></p>
<h4>Objective-C</h4>
<pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">strong</span><span class="p">)</span> <span class="n"><a href="../Type%20Definitions.html#/c:SDLButtonName.h@T@SDLButtonName">SDLButtonName</a></span> <span class="n">_Nonnull</span> <span class="n">buttonName</span><span class="p">;</span></code></pre>
<h4>Swift</h4>
<pre class="highlight swift"><code><span class="k">var</span> <span class="nv">buttonName</span><span class="p">:</span> <span class="kt"><a href="../Type%20Definitions.html#/c:SDLButtonName.h@T@SDLButtonName">SDLButtonName</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>
</section>
|