Hex Artifact Content
Not logged in

Artifact 7cdb12e2d08dfd2a8b1c7d5186d354716920ed96:

Wiki page [Android facilities] by chw 2020-08-15 17:58:40.
0000: 44 20 32 30 32 30 2d 30 38 2d 31 35 54 31 37 3a  D 2020-08-15T17:
0010: 35 38 3a 34 30 2e 38 36 30 0a 4c 20 41 6e 64 72  58:40.860.L Andr
0020: 6f 69 64 5c 73 66 61 63 69 6c 69 74 69 65 73 0a  oid\sfacilities.
0030: 50 20 30 30 32 35 64 66 30 61 65 35 33 64 30 33  P 0025df0ae53d03
0040: 39 64 34 36 37 61 63 65 63 34 65 66 34 63 61 33  9d467acec4ef4ca3
0050: 37 63 32 65 64 31 64 31 33 35 0a 55 20 63 68 77  7c2ed1d135.U chw
0060: 0a 57 20 35 32 39 30 30 0a 3c 68 32 3e 62 6f 72  .W 52900.<h2>bor
0070: 67 20 63 6f 6d 6d 61 6e 64 3c 2f 68 32 3e 0d 0a  g command</h2>..
0080: 0d 0a 3c 68 33 3e 4e 61 6d 65 3c 2f 68 33 3e 0d  ..<h3>Name</h3>.
0090: 0a 0d 0a 3c 62 3e 62 6f 72 67 3c 2f 62 3e 20 2d  ...<b>borg</b> -
00a0: 20 63 6f 6e 74 72 6f 6c 20 61 6e 64 20 69 6e 74   control and int
00b0: 65 72 61 63 74 20 77 69 74 68 20 74 68 65 20 41  eract with the A
00c0: 6e 64 72 6f 69 64 20 4f 53 2e 0d 0a 0d 0a 3c 68  ndroid OS.....<h
00d0: 33 3e 53 79 6e 6f 70 73 69 73 3c 2f 68 33 3e 0d  3>Synopsis</h3>.
00e0: 0a 0d 0a 3c 74 74 3e 70 61 63 6b 61 67 65 20 72  ...<tt>package r
00f0: 65 71 75 69 72 65 20 42 6f 72 67 3c 2f 74 74 3e  equire Borg</tt>
0100: 3c 62 72 3e 0d 0a 3c 74 74 3e 62 6f 72 67 20 63  <br>..<tt>borg c
0110: 6d 64 20 3f 3c 69 3e 61 72 67 20 2e 2e 2e 3c 2f  md ?<i>arg ...</
0120: 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 3c 68 33 3e  i>?</tt>....<h3>
0130: 44 65 73 63 72 69 70 74 69 6f 6e 3c 2f 68 33 3e  Description</h3>
0140: 0d 0a 0d 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64  ....This command
0150: 20 69 6e 74 65 67 72 61 74 65 73 20 74 68 65 20   integrates the 
0160: 63 61 70 61 62 69 6c 69 74 69 65 73 20 6f 66 20  capabilities of 
0170: 54 63 6c 2f 54 6b 20 77 69 74 68 20 41 6e 64 72  Tcl/Tk with Andr
0180: 6f 69 64 20 62 79 20 77 61 79 20 6f 66 20 73 65  oid by way of se
0190: 76 65 72 61 6c 20 73 75 62 63 6f 6d 6d 61 6e 64  veral subcommand
01a0: 73 2e 20 54 68 65 73 65 20 61 6c 6c 6f 77 20 54  s. These allow T
01b0: 63 6c 2f 54 6b 20 74 6f 20 67 6f 20 77 68 65 72  cl/Tk to go wher
01c0: 65 20 69 74 20 68 61 73 20 6e 65 76 65 72 20 67  e it has never g
01d0: 6f 6e 65 20 62 65 66 6f 72 65 20 62 79 20 71 75  one before by qu
01e0: 65 72 79 69 6e 67 20 61 6e 64 20 63 6f 6e 74 72  erying and contr
01f0: 6f 6c 6c 69 6e 67 20 42 6c 75 65 74 6f 6f 74 68  olling Bluetooth
0200: 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 2c 20   functionality, 
0210: 4f 53 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e 73  OS notifications
0220: 20 28 69 6e 63 6c 75 64 69 6e 67 20 64 65 76 69   (including devi
0230: 63 65 20 76 69 62 72 61 74 69 6f 6e 20 61 6e 64  ce vibration and
0240: 20 65 76 65 6e 20 73 70 65 65 63 68 29 2c 20 6c   even speech), l
0250: 6f 63 61 74 69 6f 6e 20 69 6e 66 6f 72 6d 61 74  ocation informat
0260: 69 6f 6e 2c 20 65 74 63 2e 0d 0a 0d 0a 3c 68 34  ion, etc.....<h4
0270: 3e 42 6c 75 65 74 6f 6f 74 68 2d 52 65 6c 61 74  >Bluetooth-Relat
0280: 65 64 20 43 6f 6d 6d 61 6e 64 73 3c 2f 68 34 3e  ed Commands</h4>
0290: 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 62 6c 75  ....<tt>borg blu
02a0: 65 74 6f 6f 74 68 20 64 65 76 69 63 65 73 3c 2f  etooth devices</
02b0: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72  tt>....    Retur
02c0: 6e 73 20 61 20 6c 69 73 74 20 73 75 69 74 65 64  ns a list suited
02d0: 20 66 6f 72 20 3c 74 74 3e 61 72 72 61 79 20 73   for <tt>array s
02e0: 65 74 3c 2f 74 74 3e 20 6f 72 20 3c 74 74 3e 64  et</tt> or <tt>d
02f0: 69 63 74 20 63 72 65 61 74 65 3c 2f 74 74 3e 20  ict create</tt> 
0300: 63 6f 6d 6d 61 6e 64 73 20 63 6f 6e 74 61 69 6e  commands contain
0310: 69 6e 67 20 74 68 65 20 42 6c 75 65 74 6f 6f 74  ing the Bluetoot
0320: 68 20 61 64 64 72 65 73 73 20 61 6e 64 20 66 72  h address and fr
0330: 69 65 6e 64 6c 79 20 6e 61 6d 65 20 6f 66 20 61  iendly name of a
0340: 6c 6c 20 70 61 69 72 65 64 20 42 6c 75 65 74 6f  ll paired Blueto
0350: 6f 74 68 20 64 65 76 69 63 65 73 2e 0d 0a 0d 0a  oth devices.....
0360: 3c 74 74 3e 62 6f 72 67 20 62 6c 75 65 74 6f 6f  <tt>borg bluetoo
0370: 74 68 20 73 74 61 74 65 3c 2f 74 74 3e 0d 0a 0d  th state</tt>...
0380: 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74 68 65  .    Returns the
0390: 20 63 75 72 72 65 6e 74 20 42 6c 75 65 74 6f 6f   current Bluetoo
03a0: 74 68 20 73 74 61 74 65 3a 20 3c 74 74 3e 6f 66  th state: <tt>of
03b0: 66 3c 2f 74 74 3e 2c 20 3c 74 74 3e 6f 6e 3c 2f  f</tt>, <tt>on</
03c0: 74 74 3e 2c 20 3c 74 74 3e 74 75 72 6e 69 6e 67  tt>, <tt>turning
03d0: 5f 6f 66 66 3c 2f 74 74 3e 2c 20 6f 72 20 3c 74  _off</tt>, or <t
03e0: 74 3e 74 75 72 6e 69 6e 67 5f 6f 6e 3c 2f 74 74  t>turning_on</tt
03f0: 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 62  >.....<tt>borg b
0400: 6c 75 65 74 6f 6f 74 68 20 73 63 61 6e 6d 6f 64  luetooth scanmod
0410: 65 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65  e</tt>....    Re
0420: 74 75 72 6e 73 20 74 68 65 20 63 75 72 72 65 6e  turns the curren
0430: 74 20 42 6c 75 65 74 6f 6f 74 68 20 73 63 61 6e  t Bluetooth scan
0440: 20 6d 6f 64 65 3a 20 3c 74 74 3e 63 6f 6e 6e 65   mode: <tt>conne
0450: 63 74 61 62 6c 65 3c 2f 74 74 3e 2c 20 3c 74 74  ctable</tt>, <tt
0460: 3e 6f 66 66 3c 2f 74 74 3e 2c 20 3c 74 74 3e 70  >off</tt>, <tt>p
0470: 61 73 73 69 76 65 3c 2f 74 74 3e 2c 20 6f 72 20  assive</tt>, or 
0480: 3c 74 74 3e 76 69 73 69 62 6c 65 3c 2f 74 74 3e  <tt>visible</tt>
0490: 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 62 6c  .....<tt>borg bl
04a0: 75 65 74 6f 6f 74 68 20 6d 79 61 64 64 72 65 73  uetooth myaddres
04b0: 73 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65  s</tt>....    Re
04c0: 74 75 72 6e 73 20 74 68 65 20 42 6c 75 65 74 6f  turns the Blueto
04d0: 6f 74 68 20 61 64 64 72 65 73 73 20 6f 66 20 74  oth address of t
04e0: 68 65 20 6c 6f 63 61 6c 20 64 65 66 61 75 6c 74  he local default
04f0: 20 42 6c 75 65 74 6f 6f 74 68 20 61 64 61 70 74   Bluetooth adapt
0500: 65 72 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20  er.....<tt>borg 
0510: 62 6c 75 65 74 6f 6f 74 68 20 72 65 6d 6f 74 65  bluetooth remote
0520: 61 64 64 72 65 73 73 20 3c 69 3e 61 64 64 72 65  address <i>addre
0530: 73 73 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20  ss</i></tt>.... 
0540: 20 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 66     Returns the f
0550: 72 69 65 6e 64 6c 79 20 6e 61 6d 65 20 66 6f 72  riendly name for
0560: 20 74 68 65 20 67 69 76 65 6e 20 42 6c 75 65 74   the given Bluet
0570: 6f 6f 74 68 20 3c 74 74 3e 3c 69 3e 61 64 64 72  ooth <tt><i>addr
0580: 65 73 73 3c 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d  ess</i></tt>....
0590: 0a 3c 74 74 3e 62 6f 72 67 20 62 6c 75 65 74 6f  .<tt>borg blueto
05a0: 6f 74 68 20 6f 6e 3c 2f 74 74 3e 0d 0a 0d 0a 20  oth on</tt>.... 
05b0: 20 20 20 51 75 6f 74 65 20 66 72 6f 6d 20 3c 61     Quote from <a
05c0: 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 64 65   href="http://de
05d0: 76 65 6c 6f 70 65 72 2e 61 6e 64 72 6f 69 64 2e  veloper.android.
05e0: 63 6f 6d 2f 72 65 66 65 72 65 6e 63 65 2f 61 6e  com/reference/an
05f0: 64 72 6f 69 64 2f 62 6c 75 65 74 6f 6f 74 68 2f  droid/bluetooth/
0600: 42 6c 75 65 74 6f 6f 74 68 41 64 61 70 74 65 72  BluetoothAdapter
0610: 2e 68 74 6d 6c 23 65 6e 61 62 6c 65 28 29 22 3e  .html#enable()">
0620: 41 6e 64 72 6f 69 64 20 64 6f 63 75 6d 65 6e 74  Android document
0630: 61 74 69 6f 6e 3c 2f 61 3e 3a 20 64 6f 20 6e 6f  ation</a>: do no
0640: 74 20 75 73 65 20 77 69 74 68 6f 75 74 20 65 78  t use without ex
0650: 70 6c 69 63 69 74 20 75 73 65 72 20 61 63 74 69  plicit user acti
0660: 6f 6e 20 74 6f 20 74 75 72 6e 20 6f 6e 20 42 6c  on to turn on Bl
0670: 75 65 74 6f 6f 74 68 2e 20 54 72 69 65 73 20 74  uetooth. Tries t
0680: 6f 20 74 75 72 6e 20 74 68 65 20 42 6c 75 65 74  o turn the Bluet
0690: 6f 6f 74 68 20 61 64 61 70 74 65 72 20 6f 6e 2e  ooth adapter on.
06a0: 20 52 65 74 75 72 6e 73 20 31 20 69 66 20 74 68   Returns 1 if th
06b0: 65 20 61 64 61 70 74 65 72 20 69 73 20 61 6c 72  e adapter is alr
06c0: 65 61 64 79 20 6f 72 20 67 6f 69 6e 67 20 74 6f  eady or going to
06d0: 20 62 65 20 74 75 72 6e 65 64 20 6f 6e 2c 20 30   be turned on, 0
06e0: 20 6f 74 68 65 72 77 69 73 65 2e 0d 0a 0d 0a 3c   otherwise.....<
06f0: 74 74 3e 62 6f 72 67 20 62 6c 75 65 74 6f 6f 74  tt>borg bluetoot
0700: 68 20 6f 66 66 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  h off</tt>....  
0710: 20 20 51 75 6f 74 65 20 66 72 6f 6d 20 3c 61 20    Quote from <a 
0720: 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 64 65 76  href="http://dev
0730: 65 6c 6f 70 65 72 2e 61 6e 64 72 6f 69 64 2e 63  eloper.android.c
0740: 6f 6d 2f 72 65 66 65 72 65 6e 63 65 2f 61 6e 64  om/reference/and
0750: 72 6f 69 64 2f 62 6c 75 65 74 6f 6f 74 68 2f 42  roid/bluetooth/B
0760: 6c 75 65 74 6f 6f 74 68 41 64 61 70 74 65 72 2e  luetoothAdapter.
0770: 68 74 6d 6c 23 64 69 73 61 62 6c 65 28 29 22 3e  html#disable()">
0780: 41 6e 64 72 6f 69 64 20 64 6f 63 75 6d 65 6e 74  Android document
0790: 61 74 69 6f 6e 3c 2f 61 3e 3a 20 64 6f 20 6e 6f  ation</a>: do no
07a0: 74 20 75 73 65 20 77 69 74 68 6f 75 74 20 65 78  t use without ex
07b0: 70 6c 69 63 69 74 20 75 73 65 72 20 61 63 74 69  plicit user acti
07c0: 6f 6e 20 74 6f 20 74 75 72 6e 20 6f 66 66 20 42  on to turn off B
07d0: 6c 75 65 74 6f 6f 74 68 2e 20 54 72 69 65 73 20  luetooth. Tries 
07e0: 74 6f 20 74 75 72 6e 20 74 68 65 20 42 6c 75 65  to turn the Blue
07f0: 74 6f 6f 74 68 20 61 64 61 70 74 65 72 20 6f 66  tooth adapter of
0800: 66 2e 20 52 65 74 75 72 6e 73 20 31 20 69 66 20  f. Returns 1 if 
0810: 74 68 65 20 61 64 61 70 74 65 72 20 69 73 20 61  the adapter is a
0820: 6c 72 65 61 64 79 20 6f 72 20 67 6f 69 6e 67 20  lready or going 
0830: 74 6f 20 62 65 20 74 75 72 6e 65 64 20 6f 66 66  to be turned off
0840: 2c 20 30 20 6f 74 68 65 72 77 69 73 65 2e 0d 0a  , 0 otherwise...
0850: 0d 0a 46 6f 72 20 63 6f 6d 6d 75 6e 69 63 61 74  ..For communicat
0860: 69 6f 6e 20 6f 76 65 72 20 42 6c 75 65 74 6f 6f  ion over Bluetoo
0870: 74 68 20 73 65 65 20 74 68 65 20 64 65 73 63 72  th see the descr
0880: 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 5b 72  iption of the [r
0890: 66 63 6f 6d 6d 20 63 6f 6d 6d 61 6e 64 5d 2e 20  fcomm command]. 
08a0: 46 6f 72 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20  For handling of 
08b0: 42 6c 75 65 74 6f 6f 74 68 20 4c 6f 77 20 45 6e  Bluetooth Low En
08c0: 65 72 67 79 20 28 42 6c 75 65 74 6f 6f 74 68 20  ergy (Bluetooth 
08d0: 53 6d 61 72 74 29 20 64 65 76 69 63 65 73 20 73  Smart) devices s
08e0: 65 65 20 74 68 65 20 64 65 73 63 72 69 70 74 69  ee the descripti
08f0: 6f 6e 20 6f 66 20 74 68 65 20 5b 62 6c 65 20 63  on of the [ble c
0900: 6f 6d 6d 61 6e 64 5d 2e 0d 0a 0d 0a 3c 68 34 3e  ommand].....<h4>
0910: 55 53 42 2d 52 65 6c 61 74 65 64 20 43 6f 6d 6d  USB-Related Comm
0920: 61 6e 64 73 3c 2f 68 34 3e 0d 0a 0d 0a 3c 74 74  ands</h4>....<tt
0930: 3e 62 6f 72 67 20 75 73 62 64 65 76 69 63 65 73  >borg usbdevices
0940: 20 3f 3c 69 3e 65 78 74 65 6e 64 65 64 3c 2f 69   ?<i>extended</i
0950: 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 49  >?</tt>....    I
0960: 66 20 3c 74 74 3e 3c 69 3e 65 78 74 65 6e 64 65  f <tt><i>extende
0970: 64 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 6f 6d  d</i></tt> is om
0980: 69 74 74 65 64 20 6f 72 20 66 61 6c 73 65 2c 20  itted or false, 
0990: 61 20 6c 69 73 74 20 73 75 69 74 61 62 6c 65 20  a list suitable 
09a0: 66 6f 72 20 74 68 65 20 3c 74 74 3e 61 72 72 61  for the <tt>arra
09b0: 79 20 73 65 74 3c 2f 74 74 3e 20 6f 72 20 3c 74  y set</tt> or <t
09c0: 74 3e 64 69 63 74 20 63 72 65 61 74 65 3c 2f 74  t>dict create</t
09d0: 74 3e 20 63 6f 6d 6d 61 6e 64 73 20 63 6f 6e 74  t> commands cont
09e0: 61 69 6e 69 6e 67 20 74 68 65 20 55 53 42 20 64  aining the USB d
09f0: 65 76 69 63 65 20 6e 61 6d 65 20 61 6e 64 20 76  evice name and v
0a00: 65 6e 64 6f 72 2f 70 72 6f 64 75 63 74 20 69 64  endor/product id
0a10: 65 6e 74 69 66 69 65 72 20 6f 66 20 61 6c 6c 20  entifier of all 
0a20: 63 75 72 72 65 6e 74 6c 79 20 63 6f 6e 6e 65 63  currently connec
0a30: 74 65 64 20 55 53 42 20 64 65 76 69 63 65 73 20  ted USB devices 
0a40: 69 73 20 72 65 74 75 72 6e 65 64 2e 20 4f 74 68  is returned. Oth
0a50: 65 72 77 69 73 65 2c 20 69 2e 65 2e 20 3c 74 74  erwise, i.e. <tt
0a60: 3e 3c 69 3e 65 78 74 65 6e 64 65 64 3c 2f 69 3e  ><i>extended</i>
0a70: 3c 2f 74 74 3e 20 69 73 20 74 72 75 65 2c 20 74  </tt> is true, t
0a80: 68 72 65 65 20 65 6c 65 6d 65 6e 74 73 20 70 65  hree elements pe
0a90: 72 20 55 53 42 20 64 65 76 69 63 65 20 61 72 65  r USB device are
0aa0: 20 72 65 74 75 72 6e 65 64 3a 20 55 53 42 20 64   returned: USB d
0ab0: 65 76 69 63 65 20 6e 61 6d 65 2c 20 70 72 6f 64  evice name, prod
0ac0: 75 63 74 2f 76 65 6e 64 6f 72 20 69 64 65 6e 74  uct/vendor ident
0ad0: 69 66 69 65 72 2c 20 61 6e 64 20 55 53 42 20 69  ifier, and USB i
0ae0: 6e 74 65 72 66 61 63 65 20 69 6e 66 6f 72 6d 61  nterface informa
0af0: 74 69 6f 6e 20 61 73 20 69 6e 20 3c 74 74 3e 75  tion as in <tt>u
0b00: 64 65 76 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74  dev</tt>.....<tt
0b10: 3e 62 6f 72 67 20 75 73 62 70 65 72 6d 69 73 73  >borg usbpermiss
0b20: 69 6f 6e 20 3c 69 3e 64 65 76 6e 61 6d 65 3c 2f  ion <i>devname</
0b30: 69 3e 20 3f 3c 69 3e 61 73 6b 3c 2f 69 3e 3f 3c  i> ?<i>ask</i>?<
0b40: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 51 75 65 72  /tt>....    Quer
0b50: 69 65 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 66  ies permission f
0b60: 6f 72 20 74 68 65 20 55 53 42 20 64 65 76 69 63  or the USB devic
0b70: 65 20 3c 74 74 3e 3c 69 3e 64 65 76 6e 61 6d 65  e <tt><i>devname
0b80: 3c 2f 69 3e 3c 2f 74 74 3e 20 61 6e 64 20 72 65  </i></tt> and re
0b90: 74 75 72 6e 73 20 31 20 69 66 20 74 68 65 20 64  turns 1 if the d
0ba0: 65 76 69 63 65 20 69 73 20 75 73 61 62 6c 65 2c  evice is usable,
0bb0: 20 30 20 69 66 20 6e 6f 74 2c 20 61 6e 64 20 61   0 if not, and a
0bc0: 20 6e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72   negative number
0bd0: 20 6f 6e 20 65 72 72 6f 72 2e 20 49 66 20 74 68   on error. If th
0be0: 65 20 6f 70 74 69 6f 6e 61 6c 20 62 6f 6f 6c 65  e optional boole
0bf0: 61 6e 20 61 72 67 75 6d 65 6e 74 20 3c 74 74 3e  an argument <tt>
0c00: 3c 69 3e 61 73 6b 3c 2f 69 3e 3c 2f 74 74 3e 20  <i>ask</i></tt> 
0c10: 69 73 20 73 70 65 63 69 66 69 65 64 20 61 73 20  is specified as 
0c20: 74 72 75 65 2c 20 61 20 73 79 73 74 65 6d 20 64  true, a system d
0c30: 69 61 6c 6f 67 20 69 73 20 73 68 6f 77 6e 20 61  ialog is shown a
0c40: 6c 6c 6f 77 69 6e 67 20 74 68 65 20 75 73 65 72  llowing the user
0c50: 20 74 6f 20 67 72 61 6e 74 20 6f 72 20 64 65 6e   to grant or den
0c60: 79 20 70 65 72 6d 69 73 73 69 6f 6e 20 66 6f 72  y permission for
0c70: 20 74 68 65 20 55 53 42 20 64 65 76 69 63 65 2e   the USB device.
0c80: 0d 0a 0d 0a 46 6f 72 20 63 6f 6d 6d 75 6e 69 63  ....For communic
0c90: 61 74 69 6f 6e 20 6f 76 65 72 20 55 53 42 20 73  ation over USB s
0ca0: 65 72 69 61 6c 20 63 6f 6e 76 65 72 74 65 72 73  erial converters
0cb0: 20 73 65 65 20 74 68 65 20 64 65 73 63 72 69 70   see the descrip
0cc0: 74 69 6f 6e 20 6f 66 20 74 68 65 20 5b 75 73 62  tion of the [usb
0cd0: 73 65 72 69 61 6c 20 63 6f 6d 6d 61 6e 64 5d 2e  serial command].
0ce0: 0d 0a 0d 0a 3c 68 34 3e 4e 65 74 77 6f 72 6b 2d  ....<h4>Network-
0cf0: 52 65 6c 61 74 65 64 20 43 6f 6d 6d 61 6e 64 73  Related Commands
0d00: 3c 2f 68 34 3e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72  </h4>....<tt>bor
0d10: 67 20 6e 65 74 77 6f 72 6b 69 6e 66 6f 3c 2f 74  g networkinfo</t
0d20: 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e  t>....    Return
0d30: 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 74  s the current st
0d40: 61 74 65 20 6f 66 20 74 68 65 20 6e 65 74 77 6f  ate of the netwo
0d50: 72 6b 3a 20 3c 74 74 3e 6e 6f 6e 65 3c 2f 74 74  rk: <tt>none</tt
0d60: 3e 2c 20 3c 74 74 3e 77 69 66 69 3c 2f 74 74 3e  >, <tt>wifi</tt>
0d70: 2c 20 3c 74 74 3e 6d 6f 62 69 6c 65 20 67 73 6d  , <tt>mobile gsm
0d80: 3c 2f 74 74 3e 2c 20 65 74 63 2e 20 41 6e 20 75  </tt>, etc. An u
0d90: 70 64 61 74 65 20 6f 66 20 74 68 69 73 20 69 6e  pdate of this in
0da0: 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 69 6e 64  formation is ind
0db0: 69 63 61 74 65 64 20 62 79 20 74 68 65 20 3c 74  icated by the <t
0dc0: 74 3e 3c 3c 4e 65 74 77 6f 72 6b 49 6e 66 6f 3e  t><<NetworkInfo>
0dd0: 3e 3c 2f 74 74 3e 20 76 69 72 74 75 61 6c 20 65  ></tt> virtual e
0de0: 76 65 6e 74 20 73 65 6e 74 20 74 6f 20 61 6c 6c  vent sent to all
0df0: 20 74 6f 70 6c 65 76 65 6c 20 77 69 64 67 65 74   toplevel widget
0e00: 73 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 74  s.....<tt>borg t
0e10: 65 74 68 65 72 69 6e 66 6f 3c 2f 74 74 3e 0d 0a  etherinfo</tt>..
0e20: 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74 68  ..    Returns th
0e30: 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 20  e current state 
0e40: 6f 66 20 74 65 74 68 65 72 69 6e 67 20 61 73 20  of tethering as 
0e50: 61 20 6c 69 73 74 20 73 75 69 74 65 64 20 66 6f  a list suited fo
0e60: 72 20 3c 74 74 3e 61 72 72 61 79 20 73 65 74 3c  r <tt>array set<
0e70: 2f 74 74 3e 20 6f 72 20 3c 74 74 3e 64 69 63 74  /tt> or <tt>dict
0e80: 20 63 72 65 61 74 65 3c 2f 74 74 3e 20 77 69 74   create</tt> wit
0e90: 68 20 7a 65 72 6f 20 6f 72 20 74 68 72 65 65 20  h zero or three 
0ea0: 65 6e 74 72 69 65 73 20 3c 74 74 3e 61 63 74 69  entries <tt>acti
0eb0: 76 65 3c 2f 74 74 3e 2c 20 3c 74 74 3e 61 76 61  ve</tt>, <tt>ava
0ec0: 69 6c 61 62 6c 65 3c 2f 74 74 3e 2c 20 61 6e 64  ilable</tt>, and
0ed0: 20 3c 74 74 3e 65 72 72 6f 72 3c 2f 74 74 3e 20   <tt>error</tt> 
0ee0: 77 68 69 63 68 20 75 73 75 61 6c 6c 79 20 63 6f  which usually co
0ef0: 6e 74 61 69 6e 20 69 6e 74 65 72 66 61 63 65 20  ntain interface 
0f00: 6e 61 6d 65 73 2e 20 41 6e 20 75 70 64 61 74 65  names. An update
0f10: 20 6f 66 20 74 68 69 73 20 69 6e 66 6f 72 6d 61   of this informa
0f20: 74 69 6f 6e 20 69 73 20 69 6e 64 69 63 61 74 65  tion is indicate
0f30: 64 20 62 79 20 74 68 65 20 3c 74 74 3e 3c 3c 54  d by the <tt><<T
0f40: 65 74 68 65 72 49 6e 66 6f 3e 3e 3c 2f 74 74 3e  etherInfo>></tt>
0f50: 20 76 69 72 74 75 61 6c 20 65 76 65 6e 74 20 73   virtual event s
0f60: 65 6e 74 20 74 6f 20 61 6c 6c 20 74 6f 70 6c 65  ent to all tople
0f70: 76 65 6c 20 77 69 64 67 65 74 73 2e 0d 0a 0d 0a  vel widgets.....
0f80: 3c 68 34 3e 44 65 73 6b 74 6f 70 2d 52 65 6c 61  <h4>Desktop-Rela
0f90: 74 65 64 20 43 6f 6d 6d 61 6e 64 73 3c 2f 68 34  ted Commands</h4
0fa0: 3e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 73 68  >....<tt>borg sh
0fb0: 6f 72 74 63 75 74 20 61 64 64 20 3c 69 3e 6e 61  ortcut add <i>na
0fc0: 6d 65 2d 6f 66 2d 73 68 6f 72 74 63 75 74 20 73  me-of-shortcut s
0fd0: 63 72 69 70 74 2d 74 6f 2d 72 75 6e 3c 2f 69 3e  cript-to-run</i>
0fe0: 20 3f 3c 69 3e 70 6e 67 2d 69 63 6f 6e 2d 61 73   ?<i>png-icon-as
0ff0: 2d 62 61 73 65 2d 36 34 2d 73 74 72 69 6e 67 3c  -base-64-string<
1000: 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  /i>?</tt>....   
1010: 20 41 64 64 73 20 61 6e 20 69 63 6f 6e 20 74 6f   Adds an icon to
1020: 20 74 68 65 20 64 65 73 6b 74 6f 70 2c 20 77 69   the desktop, wi
1030: 74 68 20 74 68 65 20 6c 61 62 65 6c 20 3c 74 74  th the label <tt
1040: 3e 3c 69 3e 6e 61 6d 65 2d 6f 66 2d 73 68 6f 72  ><i>name-of-shor
1050: 74 63 75 74 3c 2f 69 3e 3c 2f 74 74 3e 20 73 70  tcut</i></tt> sp
1060: 65 63 69 66 69 65 64 2e 20 54 68 65 20 73 63 72  ecified. The scr
1070: 69 70 74 2c 20 73 70 65 63 69 66 69 65 64 20 61  ipt, specified a
1080: 73 20 3c 74 74 3e 3c 69 3e 73 63 72 69 70 74 2d  s <tt><i>script-
1090: 74 6f 2d 72 75 6e 3c 2f 69 3e 3c 2f 74 74 3e 20  to-run</i></tt> 
10a0: 6d 75 73 74 20 75 73 65 20 61 6e 20 61 62 73 6f  must use an abso
10b0: 6c 75 74 65 20 70 61 74 68 20 61 73 20 61 20 3c  lute path as a <
10c0: 74 74 3e 66 69 6c 65 3a 2f 2f 3c 2f 74 74 3e 20  tt>file://</tt> 
10d0: 55 52 49 20 61 6e 64 20 6d 75 73 74 20 62 65 20  URI and must be 
10e0: 72 65 61 64 61 62 6c 65 20 62 79 20 74 68 65 20  readable by the 
10f0: 75 73 65 72 20 69 64 20 75 6e 64 65 72 20 77 68  user id under wh
1100: 69 63 68 20 74 68 65 20 41 6e 64 72 6f 57 69 73  ich the AndroWis
1110: 68 20 70 61 63 6b 61 67 65 20 68 61 73 20 62 65  h package has be
1120: 65 6e 20 72 65 67 69 73 74 65 72 65 64 20 62 79  en registered by
1130: 20 74 68 65 20 41 6e 64 72 6f 69 64 20 69 6e 73   the Android ins
1140: 74 61 6c 6c 65 72 2e 20 54 68 65 20 6c 61 73 74  taller. The last
1150: 20 28 6f 70 74 69 6f 6e 61 6c 29 20 70 61 72 61   (optional) para
1160: 6d 65 74 65 72 20 3c 74 74 3e 3c 69 3e 70 6e 67  meter <tt><i>png
1170: 2d 69 63 6f 6e 2d 61 73 2d 62 61 73 65 2d 36 34  -icon-as-base-64
1180: 2d 73 74 72 69 6e 67 3c 2f 69 3e 3c 2f 74 74 3e  -string</i></tt>
1190: 20 61 6c 6c 6f 77 73 20 74 68 65 20 69 63 6f 6e   allows the icon
11a0: 20 67 72 61 70 68 69 63 20 74 6f 20 62 65 20 73   graphic to be s
11b0: 70 65 63 69 66 69 65 64 2e 20 49 66 20 6e 6f 74  pecified. If not
11c0: 20 70 72 6f 76 69 64 65 64 2c 20 61 20 64 65 66   provided, a def
11d0: 61 75 6c 74 20 41 6e 64 72 6f 57 69 73 68 20 69  ault AndroWish i
11e0: 63 6f 6e 20 69 73 20 75 73 65 64 2e 20 41 63 63  con is used. Acc
11f0: 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 3c 61  ording to the <a
1200: 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 64 65   href="http://de
1210: 76 65 6c 6f 70 65 72 2e 61 6e 64 72 6f 69 64 2e  veloper.android.
1220: 63 6f 6d 2f 64 65 73 69 67 6e 2f 73 74 79 6c 65  com/design/style
1230: 2f 69 63 6f 6e 6f 67 72 61 70 68 79 2e 68 74 6d  /iconography.htm
1240: 6c 22 3e 67 75 69 64 65 6c 69 6e 65 73 20 6f 6e  l">guidelines on
1250: 20 69 63 6f 6e 6f 67 72 61 70 68 79 3c 2f 61 3e   iconography</a>
1260: 20 69 63 6f 6e 73 20 73 68 6f 75 6c 64 20 68 61   icons should ha
1270: 76 65 20 61 6e 20 61 73 70 65 63 74 20 72 61 74  ve an aspect rat
1280: 69 6f 20 6f 66 20 34 38 20 62 79 20 34 38 20 70  io of 48 by 48 p
1290: 69 78 65 6c 73 20 28 31 39 32 20 78 20 31 39 32  ixels (192 x 192
12a0: 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2c   is recommended,
12b0: 20 61 74 20 34 20 74 69 6d 65 73 20 34 38 78 34   at 4 times 48x4
12c0: 38 20 70 69 78 65 6c 73 29 2e 20 45 78 61 6d 70  8 pixels). Examp
12d0: 6c 65 20 28 70 73 65 75 64 6f 20 63 6f 64 65 29  le (pseudo code)
12e0: 3a 0d 0a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d  :....<verbatim>.
12f0: 0a 20 20 20 20 70 61 63 6b 61 67 65 20 72 65 71  .    package req
1300: 75 69 72 65 20 62 61 73 65 36 34 0d 0a 20 20 20  uire base64..   
1310: 20 70 72 6f 63 20 72 65 61 64 5f 62 69 6e 61 72   proc read_binar
1320: 79 5f 66 69 6c 65 20 7b 6e 61 6d 65 7d 20 7b 20  y_file {name} { 
1330: 23 20 77 68 61 74 65 76 65 72 20 69 73 20 6e 65  # whatever is ne
1340: 65 64 65 64 20 74 6f 20 72 65 61 64 20 62 79 74  eded to read byt
1350: 65 73 20 2e 2e 2e 20 7d 0d 0a 20 20 20 20 73 65  es ... }..    se
1360: 74 20 69 63 6f 6e 64 61 74 61 20 5b 72 65 61 64  t icondata [read
1370: 5f 62 69 6e 61 72 79 5f 66 69 6c 65 20 22 2f 6d  _binary_file "/m
1380: 6e 74 2f 73 64 63 61 72 64 2f 61 70 70 69 63 6f  nt/sdcard/appico
1390: 6e 5f 34 38 5f 34 38 2e 70 6e 67 22 5d 0d 0a 20  n_48_48.png"].. 
13a0: 20 20 20 73 65 74 20 69 63 6f 6e 62 61 73 65 36     set iconbase6
13b0: 34 20 5b 3a 3a 62 61 73 65 36 34 3a 3a 65 6e 63  4 [::base64::enc
13c0: 6f 64 65 20 2d 6d 61 78 6c 65 6e 20 30 20 24 69  ode -maxlen 0 $i
13d0: 63 6f 6e 64 61 74 61 5d 0d 0a 20 20 20 20 62 6f  condata]..    bo
13e0: 72 67 20 73 68 6f 72 74 63 75 74 20 61 64 64 20  rg shortcut add 
13f0: 22 4d 79 20 41 70 70 22 20 66 69 6c 65 3a 2f 2f  "My App" file://
1400: 6d 6e 74 2f 73 64 63 61 72 64 2f 73 70 65 61 6b  mnt/sdcard/speak
1410: 74 65 73 74 2e 74 63 6c 20 24 69 63 6f 6e 62 61  test.tcl $iconba
1420: 73 65 36 34 0d 0a 3c 2f 76 65 72 62 61 74 69 6d  se64..</verbatim
1430: 3e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 73 68  >....<tt>borg sh
1440: 6f 72 74 63 75 74 20 64 65 6c 65 74 65 20 3c 69  ortcut delete <i
1450: 3e 6e 61 6d 65 2d 6f 66 2d 73 68 6f 72 74 63 75  >name-of-shortcu
1460: 74 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  t</i></tt>....  
1470: 20 20 44 65 6c 65 74 65 73 20 61 6e 20 69 63 6f    Deletes an ico
1480: 6e 20 66 72 6f 6d 20 64 65 73 6b 74 6f 70 20 28  n from desktop (
1490: 64 65 70 65 6e 64 73 20 6f 6e 20 41 6e 64 72 6f  depends on Andro
14a0: 69 64 20 6c 61 75 6e 63 68 65 72 20 73 75 70 70  id launcher supp
14b0: 6f 72 74 29 2e 0d 0a 0d 0a 3c 68 34 3e 4e 6f 74  ort).....<h4>Not
14c0: 69 66 69 63 61 74 69 6f 6e 2d 52 65 6c 61 74 65  ification-Relate
14d0: 64 20 43 6f 6d 6d 61 6e 64 73 3c 2f 68 34 3e 0d  d Commands</h4>.
14e0: 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 6e 6f 74 69  ...<tt>borg noti
14f0: 66 69 63 61 74 69 6f 6e 20 61 64 64 20 3c 69 3e  fication add <i>
1500: 69 64 20 74 69 74 6c 65 3c 2f 69 3e 20 3f 3c 69  id title</i> ?<i
1510: 3e 74 65 78 74 20 69 63 6f 6e 20 61 63 74 69 6f  >text icon actio
1520: 6e 20 75 72 69 20 74 79 70 65 20 63 61 74 65 67  n uri type categ
1530: 6f 72 69 65 73 20 63 6f 6d 70 6f 6e 65 6e 74 20  ories component 
1540: 61 72 67 75 6d 65 6e 74 73 3c 2f 69 3e 3f 3c 2f  arguments</i>?</
1550: 74 74 3e 0d 0a 0d 0a 20 20 20 20 41 64 64 73 20  tt>....    Adds 
1560: 61 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e 20 77  a notification w
1570: 69 74 68 20 3c 74 74 3e 3c 69 3e 74 69 74 6c 65  ith <tt><i>title
1580: 3c 2f 69 3e 3c 2f 74 74 3e 20 61 6e 64 20 3c 74  </i></tt> and <t
1590: 74 3e 3c 69 3e 74 65 78 74 3c 2f 69 3e 3c 2f 74  t><i>text</i></t
15a0: 74 3e 20 69 6e 74 6f 20 74 68 65 20 41 6e 64 72  t> into the Andr
15b0: 6f 69 64 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e  oid notification
15c0: 20 61 72 65 61 2e 20 54 68 65 20 69 6e 74 65 67   area. The integ
15d0: 65 72 20 3c 74 74 3e 3c 69 3e 69 64 3c 2f 69 3e  er <tt><i>id</i>
15e0: 3c 2f 74 74 3e 2c 20 73 70 65 63 69 66 69 65 64  </tt>, specified
15f0: 20 62 79 20 74 68 65 20 63 61 6c 6c 65 72 2c 20   by the caller, 
1600: 69 73 20 75 73 65 64 20 74 6f 20 69 64 65 6e 74  is used to ident
1610: 69 66 79 20 74 68 65 20 6e 6f 74 69 66 69 63 61  ify the notifica
1620: 74 69 6f 6e 20 66 6f 72 20 6c 61 74 65 72 20 6d  tion for later m
1630: 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 72 20 64  odification or d
1640: 65 6c 65 74 69 6f 6e 2e 20 54 68 65 20 6f 70 74  eletion. The opt
1650: 69 6f 6e 61 6c 20 70 61 72 61 6d 65 74 65 72 73  ional parameters
1660: 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 3c   starting from <
1670: 74 74 3e 3c 69 3e 61 63 74 69 6f 6e 3c 2f 69 3e  tt><i>action</i>
1680: 3c 2f 74 74 3e 20 66 6f 72 6d 20 61 6e 20 61 63  </tt> form an ac
1690: 74 69 76 69 74 79 20 28 73 65 65 20 3c 74 74 3e  tivity (see <tt>
16a0: 62 6f 72 67 20 61 63 74 69 76 69 74 79 20 2e 2e  borg activity ..
16b0: 2e 3c 2f 74 74 3e 29 20 74 6f 20 62 65 20 63 61  .</tt>) to be ca
16c0: 72 72 69 65 64 20 6f 75 74 20 77 68 65 6e 20 74  rried out when t
16d0: 68 65 20 75 73 65 72 20 63 6c 69 63 6b 73 20 6f  he user clicks o
16e0: 6e 20 74 68 65 20 6e 6f 74 69 66 69 63 61 74 69  n the notificati
16f0: 6f 6e 2e 20 53 65 65 20 74 68 65 20 64 65 73 63  on. See the desc
1700: 72 69 70 74 69 6f 6e 20 6f 66 20 3c 74 74 3e 62  ription of <tt>b
1710: 6f 72 67 20 61 6c 61 72 6d 20 73 65 74 3c 2f 74  org alarm set</t
1720: 74 3e 20 62 65 6c 6f 77 20 66 6f 72 20 73 70 65  t> below for spe
1730: 63 69 61 6c 20 74 72 65 61 74 6d 65 6e 74 20 6f  cial treatment o
1740: 66 20 74 68 65 20 3c 74 74 3e 3c 69 3e 63 6f 6d  f the <tt><i>com
1750: 70 6f 6e 65 6e 74 3c 2f 69 3e 3c 2f 74 74 3e 20  ponent</i></tt> 
1760: 70 61 72 61 6d 65 74 65 72 2e 20 54 68 65 20 6f  parameter. The o
1770: 70 74 69 6f 6e 61 6c 20 3c 74 74 3e 3c 69 3e 69  ptional <tt><i>i
1780: 63 6f 6e 3c 2f 69 3e 3c 2f 74 74 3e 20 6d 75 73  con</i></tt> mus
1790: 74 20 62 65 20 61 20 50 4e 47 20 6f 72 20 4a 50  t be a PNG or JP
17a0: 47 20 69 6d 61 67 65 20 65 6e 63 6f 64 65 64 20  G image encoded 
17b0: 61 73 20 62 61 73 65 36 34 20 73 74 72 69 6e 67  as base64 string
17c0: 2e 20 54 68 65 20 73 69 7a 65 20 6f 66 20 74 68  . The size of th
17d0: 65 20 69 63 6f 6e 20 73 68 6f 75 6c 64 20 62 65  e icon should be
17e0: 20 32 34 20 62 79 20 32 34 20 70 69 78 65 6c 73   24 by 24 pixels
17f0: 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 6e 6f  .....<tt>borg no
1800: 74 69 66 69 63 61 74 69 6f 6e 20 64 65 6c 65 74  tification delet
1810: 65 20 3f 3c 69 3e 69 64 3c 2f 69 3e 3f 3c 2f 74  e ?<i>id</i>?</t
1820: 74 3e 0d 0a 0d 0a 20 20 20 20 44 65 6c 65 74 65  t>....    Delete
1830: 73 20 61 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e  s a notification
1840: 20 69 64 65 6e 74 69 66 69 65 64 20 74 68 61 74   identified that
1850: 20 77 61 73 20 63 72 65 61 74 65 64 20 77 69 74   was created wit
1860: 68 20 74 68 65 20 3c 74 74 3e 3c 69 3e 69 64 3c  h the <tt><i>id<
1870: 2f 69 3e 3c 2f 74 74 3e 20 73 70 65 63 69 66 69  /i></tt> specifi
1880: 65 64 2e 20 49 66 20 6e 6f 20 3c 74 74 3e 3c 69  ed. If no <tt><i
1890: 3e 69 64 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20  >id</i></tt> is 
18a0: 70 72 6f 76 69 64 65 64 2c 20 61 6c 6c 20 6e 6f  provided, all no
18b0: 74 69 66 69 63 61 74 69 6f 6e 73 20 61 72 65 20  tifications are 
18c0: 64 65 6c 65 74 65 64 2e 0d 0a 0d 0a 3c 74 74 3e  deleted.....<tt>
18d0: 62 6f 72 67 20 6e 6f 74 69 66 69 63 61 74 69 6f  borg notificatio
18e0: 6e 20 6c 65 64 20 3c 69 3e 69 64 20 61 72 67 62  n led <i>id argb
18f0: 20 6f 6e 6d 73 20 6f 66 66 6d 73 3c 2f 69 3e 3c   onms offms</i><
1900: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 41 64 64 73  /tt>....    Adds
1910: 20 61 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e 20   a notification 
1920: 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 74 68 65 20  controlling the 
1930: 64 65 76 69 63 65 20 4c 45 44 2e 20 54 68 65 20  device LED. The 
1940: 69 6e 74 65 67 65 72 20 3c 74 74 3e 3c 69 3e 69  integer <tt><i>i
1950: 64 3c 2f 69 3e 3c 2f 74 74 3e 2c 20 73 70 65 63  d</i></tt>, spec
1960: 69 66 69 65 64 20 62 79 20 74 68 65 20 63 61 6c  ified by the cal
1970: 6c 65 72 2c 20 69 73 20 75 73 65 64 20 74 6f 20  ler, is used to 
1980: 69 64 65 6e 74 69 66 79 20 74 68 65 20 6e 6f 74  identify the not
1990: 69 66 69 63 61 74 69 6f 6e 20 66 6f 72 20 6c 61  ification for la
19a0: 74 65 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e  ter modification
19b0: 20 6f 72 20 64 65 6c 65 74 69 6f 6e 2e 20 54 68   or deletion. Th
19c0: 65 20 69 6e 74 65 67 65 72 20 70 61 72 61 6d 65  e integer parame
19d0: 74 65 72 20 3c 69 3e 61 72 67 62 3c 2f 69 3e 20  ter <i>argb</i> 
19e0: 69 73 20 74 68 65 20 4c 45 44 20 63 6f 6c 6f 72  is the LED color
19f0: 20 61 73 20 63 6f 6d 62 69 6e 65 64 20 52 47 42   as combined RGB
1a00: 20 76 61 6c 75 65 20 77 69 74 68 20 61 6c 70 68   value with alph
1a10: 61 20 63 68 61 6e 6e 65 6c 2c 20 3c 69 3e 6f 6e  a channel, <i>on
1a20: 6d 73 3c 2f 69 3e 20 61 6e 64 20 3c 69 3e 6f 66  ms</i> and <i>of
1a30: 66 6d 73 3c 2f 69 3e 20 61 72 65 20 69 6e 74 65  fms</i> are inte
1a40: 67 65 72 73 2c 20 74 6f 6f 2c 20 63 6f 6e 74 72  gers, too, contr
1a50: 6f 6c 6c 69 6e 67 20 74 68 65 20 64 75 74 79 20  olling the duty 
1a60: 63 79 63 6c 65 20 6f 66 20 62 6c 69 6e 6b 69 6e  cycle of blinkin
1a70: 67 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 76  g.....<tt>borg v
1a80: 69 62 72 61 74 65 20 3c 69 3e 6d 73 3c 2f 69 3e  ibrate <i>ms</i>
1a90: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 54 75 72  </tt>....    Tur
1aa0: 6e 73 20 74 68 65 20 76 69 62 72 61 74 69 6f 6e  ns the vibration
1ab0: 20 6d 6f 74 6f 72 20 6f 6e 20 66 6f 72 20 69 6e   motor on for in
1ac0: 74 65 67 65 72 20 3c 74 74 3e 3c 69 3e 6d 73 3c  teger <tt><i>ms<
1ad0: 2f 69 3e 3c 2f 74 74 3e 20 6d 69 6c 6c 69 73 65  /i></tt> millise
1ae0: 63 6f 6e 64 73 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f  conds.....<tt>bo
1af0: 72 67 20 62 65 65 70 20 3f 3c 69 3e 75 72 69 3c  rg beep ?<i>uri<
1b00: 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  /i>?</tt>....   
1b10: 20 50 6c 61 79 73 20 61 20 6e 6f 74 69 66 69 63   Plays a notific
1b20: 61 74 69 6f 6e 20 73 6f 75 6e 64 2e 20 49 66 20  ation sound. If 
1b30: 3c 74 74 3e 3c 69 3e 75 72 69 3c 2f 69 3e 3c 2f  <tt><i>uri</i></
1b40: 74 74 3e 20 69 73 20 73 70 65 63 69 66 69 65 64  tt> is specified
1b50: 20 61 6e 64 20 6e 6f 74 20 61 6e 20 65 6d 70 74   and not an empt
1b60: 79 20 73 74 72 69 6e 67 2c 20 69 74 20 69 73 20  y string, it is 
1b70: 70 6c 61 79 65 64 20 61 73 20 6e 6f 74 69 66 69  played as notifi
1b80: 63 61 74 69 6f 6e 2f 72 69 6e 67 74 6f 6e 65 2f  cation/ringtone/
1b90: 61 6c 61 72 6d 20 73 6f 75 6e 64 2e 20 49 66 20  alarm sound. If 
1ba0: 67 69 76 65 6e 20 61 73 20 65 6d 70 74 79 20 73  given as empty s
1bb0: 74 72 69 6e 67 2c 20 74 68 65 20 63 75 72 72 65  tring, the curre
1bc0: 6e 74 20 70 6c 61 79 62 61 63 6b 20 69 73 20 73  nt playback is s
1bd0: 74 6f 70 70 65 64 2e 20 49 66 20 6f 6d 69 74 74  topped. If omitt
1be0: 65 64 20 6f 72 20 75 6e 61 62 6c 65 20 74 6f 20  ed or unable to 
1bf0: 62 65 20 72 65 73 6f 6c 76 65 64 2c 20 74 68 65  be resolved, the
1c00: 20 64 65 66 61 75 6c 74 20 6e 6f 74 69 66 69 63   default notific
1c10: 61 74 69 6f 6e 20 73 6f 75 6e 64 20 69 73 20 70  ation sound is p
1c20: 6c 61 79 65 64 2e 20 54 68 65 20 55 52 49 20 74  layed. The URI t
1c30: 79 70 69 63 61 6c 6c 79 20 68 61 73 20 74 68 65  ypically has the
1c40: 20 70 61 74 74 65 72 6e 20 3c 74 74 3e 63 6f 6e   pattern <tt>con
1c50: 74 65 6e 74 3a 2f 2f 6d 65 64 69 61 2f 7b 69 6e  tent://media/{in
1c60: 74 65 72 6e 61 6c 2c 65 78 74 65 72 6e 61 6c 7d  ternal,external}
1c70: 2f 61 75 64 69 6f 2f 6d 65 64 69 61 2f 26 6c 74  /audio/media/&lt
1c80: 3b 69 64 26 67 74 3b 3c 2f 74 74 3e 2c 20 77 68  ;id&gt;</tt>, wh
1c90: 65 72 65 20 3c 74 74 3e 69 64 3c 2f 74 74 3e 20  ere <tt>id</tt> 
1ca0: 69 73 20 61 6e 20 69 6e 74 65 67 65 72 20 6e 75  is an integer nu
1cb0: 6d 62 65 72 20 69 64 65 6e 74 69 66 79 69 6e 67  mber identifying
1cc0: 20 61 20 73 6f 75 6e 64 20 66 69 6c 65 2e 20 54   a sound file. T
1cd0: 68 65 20 3c 74 74 3e 62 6f 72 67 20 63 6f 6e 74  he <tt>borg cont
1ce0: 65 6e 74 3c 2f 74 74 3e 20 63 6f 6d 6d 61 6e 64  ent</tt> command
1cf0: 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20   can be used to 
1d00: 6f 62 74 61 69 6e 20 69 6e 66 6f 72 6d 61 74 69  obtain informati
1d10: 6f 6e 20 6f 6e 20 6e 6f 74 69 66 69 63 61 74 69  on on notificati
1d20: 6f 6e 20 73 6f 75 6e 64 73 20 66 72 6f 6d 20 41  on sounds from A
1d30: 6e 64 72 6f 69 64 27 73 20 6d 65 64 69 61 20 70  ndroid's media p
1d40: 72 6f 76 69 64 65 72 2e 0d 0a 0d 0a 3c 74 74 3e  rovider.....<tt>
1d50: 62 6f 72 67 20 73 70 65 61 6b 20 3c 69 3e 74 65  borg speak <i>te
1d60: 78 74 3c 2f 69 3e 20 3f 3c 69 3e 6c 61 6e 67 20  xt</i> ?<i>lang 
1d70: 70 69 74 63 68 20 72 61 74 65 3c 2f 69 3e 3f 3c  pitch rate</i>?<
1d80: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 47 65 74 73  /tt>....    Gets
1d90: 20 74 68 65 20 41 6e 64 72 6f 69 64 20 74 6f 20   the Android to 
1da0: 72 65 61 64 20 6f 75 74 20 74 68 65 20 73 74 72  read out the str
1db0: 69 6e 67 20 3c 74 74 3e 3c 69 3e 74 65 78 74 3c  ing <tt><i>text<
1dc0: 2f 69 3e 3c 2f 74 74 3e 2e 20 4f 70 74 69 6f 6e  /i></tt>. Option
1dd0: 61 6c 20 70 61 72 61 6d 65 74 65 72 20 3c 74 74  al parameter <tt
1de0: 3e 3c 69 3e 6c 61 6e 67 3c 2f 69 3e 3c 2f 74 74  ><i>lang</i></tt
1df0: 3e 20 69 73 20 74 68 65 20 6c 61 6e 67 75 61 67  > is the languag
1e00: 65 20 63 6f 64 65 20 66 6f 72 20 74 68 65 20 73  e code for the s
1e10: 70 6f 6b 65 6e 20 6c 61 6e 67 75 61 67 65 2c 20  poken language, 
1e20: 65 2e 67 2e 20 65 6e 2c 20 65 6e 5f 55 53 2c 20  e.g. en, en_US, 
1e30: 64 65 2c 20 65 73 2c 20 65 74 63 2e 20 4f 70 74  de, es, etc. Opt
1e40: 69 6f 6e 61 6c 20 70 61 72 61 6d 65 74 65 72 73  ional parameters
1e50: 20 3c 74 74 3e 3c 69 3e 70 69 74 63 68 3c 2f 69   <tt><i>pitch</i
1e60: 3e 3c 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e 3c  ></tt> and <tt><
1e70: 69 3e 72 61 74 65 3c 2f 69 3e 3c 2f 74 74 3e 20  i>rate</i></tt> 
1e80: 63 6f 6e 74 72 6f 6c 20 74 68 65 20 76 6f 69 63  control the voic
1e90: 65 20 61 6e 64 20 73 70 65 65 64 20 61 73 20 66  e and speed as f
1ea0: 6c 6f 61 74 20 76 61 6c 75 65 73 2e 20 4f 6e 20  loat values. On 
1eb0: 73 75 63 63 65 73 73 20 61 6e 20 69 6e 74 65 67  success an integ
1ec0: 65 72 20 6e 75 6d 62 65 72 20 3e 3d 20 31 30 30  er number >= 100
1ed0: 30 20 69 73 20 72 65 74 75 72 6e 65 64 20 77 68  0 is returned wh
1ee0: 69 63 68 20 69 64 65 6e 74 69 66 69 65 73 20 74  ich identifies t
1ef0: 68 65 20 74 65 78 74 20 74 6f 20 62 65 20 73 70  he text to be sp
1f00: 6f 6b 65 6e 20 69 6e 20 76 61 72 69 6f 75 73 20  oken in various 
1f10: 76 69 72 74 75 61 6c 20 65 76 65 6e 74 73 2e 20  virtual events. 
1f20: 4f 6e 20 65 72 72 6f 72 20 61 20 6e 65 67 61 74  On error a negat
1f30: 69 76 65 20 6e 75 6d 62 65 72 20 69 73 20 72 65  ive number is re
1f40: 74 75 72 6e 65 64 2e 0d 0a 20 3c 61 20 68 72 65  turned... <a hre
1f50: 66 3d 22 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f  f="http://develo
1f60: 70 65 72 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f  per.android.com/
1f70: 72 65 66 65 72 65 6e 63 65 2f 61 6e 64 72 6f 69  reference/androi
1f80: 64 2f 73 70 65 65 63 68 2f 74 74 73 2f 54 65 78  d/speech/tts/Tex
1f90: 74 54 6f 53 70 65 65 63 68 2e 68 74 6d 6c 22 3e  tToSpeech.html">
1fa0: 4d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  More information
1fb0: 3c 2f 61 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72  </a>.....<tt>bor
1fc0: 67 20 73 74 6f 70 73 70 65 61 6b 3c 2f 74 74 3e  g stopspeak</tt>
1fd0: 0d 0a 0d 0a 20 20 20 20 53 74 6f 70 73 20 73 70  ....    Stops sp
1fe0: 65 65 63 68 20 6f 75 74 70 75 74 2e 0d 0a 0d 0a  eech output.....
1ff0: 3c 74 74 3e 62 6f 72 67 20 69 73 73 70 65 61 6b  <tt>borg isspeak
2000: 69 6e 67 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  ing</tt>....    
2010: 52 65 74 75 72 6e 73 20 61 20 73 6d 61 6c 6c 20  Returns a small 
2020: 69 6e 74 65 67 65 72 20 69 6e 64 69 63 61 74 69  integer indicati
2030: 6e 67 20 74 68 65 20 73 74 61 74 65 20 6f 66 20  ng the state of 
2040: 73 70 65 65 63 68 20 6f 75 74 70 75 74 2e 20 5a  speech output. Z
2050: 65 72 6f 20 69 6e 64 69 63 61 74 65 73 20 69 6e  ero indicates in
2060: 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 6f 66 20  itialization of 
2070: 73 70 65 65 63 68 20 6f 75 74 70 75 74 20 68 61  speech output ha
2080: 73 20 62 65 65 6e 20 70 65 72 66 6f 72 6d 65 64  s been performed
2090: 20 62 75 74 20 6e 6f 20 73 70 65 65 63 68 20 6f   but no speech o
20a0: 75 74 70 75 74 20 69 73 20 63 75 72 72 65 6e 74  utput is current
20b0: 6c 79 20 61 63 74 69 76 65 2e 20 4f 6e 65 20 69  ly active. One i
20c0: 73 20 72 65 74 75 72 6e 65 64 20 77 68 65 6e 20  s returned when 
20d0: 73 70 65 65 63 68 20 6f 75 74 70 75 74 20 69 73  speech output is
20e0: 20 61 63 74 69 76 65 2e 20 41 20 73 6d 61 6c 6c   active. A small
20f0: 20 6e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72   negative number
2100: 20 69 6e 64 69 63 61 74 65 73 20 61 6e 20 65 72   indicates an er
2110: 72 6f 72 2c 20 74 65 6d 70 6f 72 61 72 79 20 6f  ror, temporary o
2120: 72 20 70 65 72 6d 61 6e 65 6e 74 20 75 6e 61 76  r permanent unav
2130: 61 69 6c 61 62 69 6c 69 74 79 20 6f 66 20 74 68  ailability of th
2140: 65 20 74 65 78 74 2d 74 6f 2d 73 70 65 65 63 68  e text-to-speech
2150: 20 66 61 63 69 6c 69 74 79 2e 20 49 6e 20 6f 72   facility. In or
2160: 64 65 72 20 74 6f 20 73 74 61 72 74 20 75 70 20  der to start up 
2170: 74 68 65 20 74 65 78 74 2d 74 6f 2d 73 70 65 65  the text-to-spee
2180: 63 68 20 66 61 63 69 6c 69 74 79 20 74 68 69 73  ch facility this
2190: 20 63 6f 6d 6d 61 6e 64 20 63 61 6e 20 62 65 20   command can be 
21a0: 75 73 65 64 2e 20 54 68 65 20 66 69 72 73 74 20  used. The first 
21b0: 63 61 6c 6c 20 75 73 75 61 6c 6c 79 20 72 65 74  call usually ret
21c0: 75 72 6e 73 20 2d 31 20 61 6e 64 20 63 61 6c 6c  urns -1 and call
21d0: 73 20 73 6f 6d 65 20 66 65 77 20 68 75 6e 64 72  s some few hundr
21e0: 65 64 20 6d 69 6c 6c 69 73 65 63 6f 6e 64 73 20  ed milliseconds 
21f0: 6c 61 74 65 72 20 72 65 74 75 72 6e 20 7a 65 72  later return zer
2200: 6f 2c 20 69 6e 64 69 63 61 74 69 6e 67 20 61 76  o, indicating av
2210: 61 69 6c 61 62 69 6c 69 74 79 20 6f 66 20 74 68  ailability of th
2220: 65 20 74 65 78 74 2d 74 6f 2d 73 70 65 65 63 68  e text-to-speech
2230: 20 66 61 63 69 6c 69 74 79 2e 0d 0a 0d 0a 3c 74   facility.....<t
2240: 74 3e 62 6f 72 67 20 65 6e 64 73 70 65 61 6b 3c  t>borg endspeak<
2250: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 53 74 6f 70  /tt>....    Stop
2260: 73 20 73 70 65 65 63 68 20 6f 75 74 70 75 74 20  s speech output 
2270: 61 6e 64 20 72 65 6c 65 61 73 65 73 20 73 79 73  and releases sys
2280: 74 65 6d 20 72 65 73 6f 75 72 63 65 73 2e 0d 0a  tem resources...
2290: 0d 0a 3c 74 74 3e 62 6f 72 67 20 74 6f 61 73 74  ..<tt>borg toast
22a0: 20 3c 69 3e 74 65 78 74 3c 2f 69 3e 20 3f 3c 69   <i>text</i> ?<i
22b0: 3e 66 6c 61 67 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d  >flag</i>?</tt>.
22c0: 0a 0d 0a 20 20 20 20 44 69 73 70 6c 61 79 73 20  ...    Displays 
22d0: 61 20 74 65 78 74 20 6e 6f 74 69 66 69 63 61 74  a text notificat
22e0: 69 6f 6e 20 3c 74 74 3e 3c 69 3e 74 65 78 74 3c  ion <tt><i>text<
22f0: 2f 69 3e 3c 2f 74 74 3e 20 66 6f 72 20 61 20 73  /i></tt> for a s
2300: 68 6f 72 74 20 70 65 72 69 6f 64 20 6f 66 20 74  hort period of t
2310: 69 6d 65 2e 20 54 68 65 20 64 75 72 61 74 69 6f  ime. The duratio
2320: 6e 20 6f 66 20 74 68 61 74 20 64 69 73 70 6c 61  n of that displa
2330: 79 20 69 73 20 73 6f 6d 65 77 68 61 74 20 6c 6f  y is somewhat lo
2340: 6e 67 65 72 20 77 68 65 6e 20 3c 74 74 3e 3c 69  nger when <tt><i
2350: 3e 66 6c 61 67 3c 2f 69 3e 3c 2f 74 74 3e 20 69  >flag</i></tt> i
2360: 73 20 73 70 65 63 69 66 69 65 64 20 61 73 20 74  s specified as t
2370: 72 75 65 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67  rue.....<tt>borg
2380: 20 73 70 69 6e 6e 65 72 20 6f 6e 7c 6f 66 66 3c   spinner on|off<
2390: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 44 69 73 70  /tt>....    Disp
23a0: 6c 61 79 73 20 6f 72 20 77 69 74 68 64 72 61 77  lays or withdraw
23b0: 73 20 61 20 73 70 69 6e 6e 65 72 20 28 72 6f 74  s a spinner (rot
23c0: 61 74 69 6e 67 20 73 79 6d 62 6f 6c 20 69 6e 64  ating symbol ind
23d0: 69 63 61 74 69 6e 67 20 62 75 73 79 20 73 74 61  icating busy sta
23e0: 74 65 29 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e  te) depending on
23f0: 20 61 72 67 75 6d 65 6e 74 2e 0d 0a 0d 0a 3c 68   argument.....<h
2400: 34 3e 4c 6f 63 61 74 69 6f 6e 2d 52 65 6c 61 74  4>Location-Relat
2410: 65 64 20 43 6f 6d 6d 61 6e 64 73 3c 2f 68 34 3e  ed Commands</h4>
2420: 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 6c 6f 63  ....<tt>borg loc
2430: 61 74 69 6f 6e 20 73 74 61 72 74 20 3f 3c 69 3e  ation start ?<i>
2440: 6d 69 6e 72 61 74 65 2d 69 6e 2d 6d 73 3c 2f 69  minrate-in-ms</i
2450: 3e 20 3f 3c 69 3e 6d 69 6e 2d 64 69 73 74 2d 69  > ?<i>min-dist-i
2460: 6e 2d 6d 3c 2f 69 3e 3f 3f 3c 2f 74 74 3e 0d 0a  n-m</i>??</tt>..
2470: 0d 0a 20 20 20 20 42 65 67 69 6e 73 20 61 63 71  ..    Begins acq
2480: 75 69 72 69 6e 67 20 6c 6f 63 61 74 69 6f 6e 20  uiring location 
2490: 64 61 74 61 20 76 69 61 20 74 68 65 20 41 6e 64  data via the And
24a0: 72 6f 69 64 20 4f 53 20 28 77 68 69 63 68 20 6d  roid OS (which m
24b0: 61 79 20 63 68 6f 6f 73 65 20 74 6f 20 75 73 65  ay choose to use
24c0: 20 47 50 53 2c 20 6e 65 74 77 6f 72 6b 20 69 6e   GPS, network in
24d0: 66 6f 2c 20 65 74 63 2e 29 2e 0d 0a 0d 0a 3c 74  fo, etc.).....<t
24e0: 74 3e 62 6f 72 67 20 6c 6f 63 61 74 69 6f 6e 20  t>borg location 
24f0: 73 74 6f 70 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  stop</tt>....   
2500: 20 45 6e 64 73 20 6c 6f 63 61 74 69 6f 6e 20 64   Ends location d
2510: 61 74 61 20 61 63 71 75 69 73 69 74 69 6f 6e 2e  ata acquisition.
2520: 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 6c 6f 63  ....<tt>borg loc
2530: 61 74 69 6f 6e 20 67 65 74 3c 2f 74 74 3e 0d 0a  ation get</tt>..
2540: 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74 68  ..    Returns th
2550: 65 20 6c 6f 63 61 74 69 6f 6e 20 64 61 74 61 20  e location data 
2560: 28 61 73 20 61 6e 20 3c 74 74 3e 61 72 72 61 79  (as an <tt>array
2570: 20 73 65 74 3c 2f 74 74 3e 20 6f 72 20 3c 74 74   set</tt> or <tt
2580: 3e 64 69 63 74 20 63 72 65 61 74 65 3c 2f 74 74  >dict create</tt
2590: 3e 66 6f 72 6d 29 20 77 68 65 72 65 20 74 68 65  >form) where the
25a0: 20 6b 65 79 20 69 73 20 74 68 65 20 6c 6f 63 61   key is the loca
25b0: 74 69 6f 6e 20 73 6f 75 72 63 65 2e 20 4c 6f 63  tion source. Loc
25c0: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 20 74 72  ation updates tr
25d0: 69 67 67 65 72 20 61 20 76 69 72 74 75 61 6c 20  igger a virtual 
25e0: 65 76 65 6e 74 20 3c 74 74 3e 3c 3c 4c 6f 63 61  event <tt><<Loca
25f0: 74 69 6f 6e 55 70 64 61 74 65 3e 3e 3c 2f 74 74  tionUpdate>></tt
2600: 3e 20 74 68 61 74 20 69 73 20 73 65 6e 74 20 74  > that is sent t
2610: 6f 20 61 6c 6c 20 74 6f 70 6c 65 76 65 6c 20 77  o all toplevel w
2620: 69 64 67 65 74 73 2e 20 54 68 65 73 65 20 74 6f  idgets. These to
2630: 70 6c 65 76 65 6c 20 65 76 65 6e 74 2d 68 61 6e  plevel event-han
2640: 64 6c 65 72 73 20 73 68 6f 75 6c 64 2c 20 69 6e  dlers should, in
2650: 20 74 75 72 6e 2c 20 69 6e 76 6f 6b 65 20 3c 74   turn, invoke <t
2660: 74 3e 62 6f 72 67 20 6c 6f 63 61 74 69 6f 6e 20  t>borg location 
2670: 67 65 74 3c 2f 74 74 3e 20 74 6f 20 72 65 66 72  get</tt> to refr
2680: 65 73 68 20 74 68 65 69 72 20 6b 6e 6f 77 6c 65  esh their knowle
2690: 64 67 65 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67  dge.....<tt>borg
26a0: 20 6c 6f 63 61 74 69 6f 6e 20 67 70 73 3c 2f 74   location gps</t
26b0: 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e  t>....    Return
26c0: 73 20 47 50 53 20 69 6e 66 6f 72 6d 61 74 69 6f  s GPS informatio
26d0: 6e 20 69 6e 20 3c 74 74 3e 61 72 72 61 79 20 73  n in <tt>array s
26e0: 65 74 3c 2f 74 74 3e 20 6f 72 20 3c 74 74 3e 64  et</tt> or <tt>d
26f0: 69 63 74 20 63 72 65 61 74 65 3c 2f 74 74 3e 20  ict create</tt> 
2700: 66 6f 72 6d 20 77 69 74 68 20 74 68 65 20 6b 65  form with the ke
2710: 79 73 20 3c 74 74 3e 73 74 61 74 65 3c 2f 74 74  ys <tt>state</tt
2720: 3e 20 28 6f 6e 20 6f 72 20 6f 66 66 29 20 61 6e  > (on or off) an
2730: 64 20 3c 74 74 3e 66 69 72 73 74 5f 66 69 78 3c  d <tt>first_fix<
2740: 2f 74 74 3e 20 28 74 69 6d 65 20 69 6e 20 73 65  /tt> (time in se
2750: 63 6f 6e 64 73 20 75 6e 74 69 6c 20 66 69 72 73  conds until firs
2760: 74 20 66 69 78 20 65 78 70 65 63 74 65 64 29 2e  t fix expected).
2770: 20 55 70 64 61 74 65 73 20 69 6e 20 47 50 53 20   Updates in GPS 
2780: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 72 65 20  information are 
2790: 69 6e 64 69 63 61 74 65 64 20 62 79 20 74 68 65  indicated by the
27a0: 20 3c 74 74 3e 3c 3c 47 50 53 55 70 64 61 74 65   <tt><<GPSUpdate
27b0: 3e 3e 3c 2f 74 74 3e 20 76 69 72 74 75 61 6c 20  >></tt> virtual 
27c0: 65 76 65 6e 74 20 73 65 6e 74 20 74 6f 20 61 6c  event sent to al
27d0: 6c 20 74 6f 70 6c 65 76 65 6c 20 77 69 64 67 65  l toplevel widge
27e0: 74 73 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20  ts.....<tt>borg 
27f0: 6c 6f 63 61 74 69 6f 6e 20 73 61 74 65 6c 6c 69  location satelli
2800: 74 65 73 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  tes</tt>....    
2810: 52 65 74 75 72 6e 73 20 47 50 53 20 73 61 74 65  Returns GPS sate
2820: 6c 6c 69 74 65 20 69 6e 66 6f 72 6d 61 74 69 6f  llite informatio
2830: 6e 20 69 6e 20 3c 74 74 3e 61 72 72 61 79 20 73  n in <tt>array s
2840: 65 74 3c 2f 74 74 3e 20 6f 72 20 3c 74 74 3e 64  et</tt> or <tt>d
2850: 69 63 74 20 63 72 65 61 74 65 3c 2f 74 74 3e 20  ict create</tt> 
2860: 66 6f 72 6d 20 77 68 65 72 65 20 74 68 65 20 6b  form where the k
2870: 65 79 20 69 73 20 61 20 6e 75 6d 65 72 69 63 61  ey is a numerica
2880: 6c 20 69 6e 64 65 78 20 61 6e 64 20 74 68 65 20  l index and the 
2890: 76 61 6c 75 65 73 20 61 72 65 20 70 65 72 20 73  values are per s
28a0: 61 74 65 6c 6c 69 74 65 20 69 6e 66 6f 72 6d 61  atellite informa
28b0: 74 69 6f 6e 20 69 6e 20 3c 74 74 3e 61 72 72 61  tion in <tt>arra
28c0: 79 20 73 65 74 3c 2f 74 74 3e 20 6f 72 20 3c 74  y set</tt> or <t
28d0: 74 3e 64 69 63 74 20 63 72 65 61 74 65 3c 2f 74  t>dict create</t
28e0: 74 3e 20 66 6f 72 6d 20 63 6f 6e 74 61 69 6e 69  t> form containi
28f0: 6e 67 20 74 68 65 20 66 69 65 6c 64 73 20 3c 74  ng the fields <t
2900: 74 3e 69 6e 64 65 78 3c 2f 74 74 3e 2c 20 3c 74  t>index</tt>, <t
2910: 74 3e 61 7a 69 6d 75 74 68 3c 2f 74 74 3e 2c 20  t>azimuth</tt>, 
2920: 3c 74 74 3e 65 6c 65 76 61 74 69 6f 6e 3c 2f 74  <tt>elevation</t
2930: 74 3e 2c 20 3c 74 74 3e 70 72 6e 3c 2f 74 74 3e  t>, <tt>prn</tt>
2940: 2c 20 3c 74 74 3e 73 6e 72 3c 2f 74 74 3e 2c 20  , <tt>snr</tt>, 
2950: 3c 74 74 3e 61 6c 6d 61 6e 61 63 3c 2f 74 74 3e  <tt>almanac</tt>
2960: 2c 20 3c 74 74 3e 65 70 68 65 6d 65 72 69 73 3c  , <tt>ephemeris<
2970: 2f 74 74 3e 2c 20 61 6e 64 20 3c 74 74 3e 69 6e  /tt>, and <tt>in
2980: 66 69 78 3c 2f 74 74 3e 2e 20 55 70 64 61 74 65  fix</tt>. Update
2990: 73 20 69 6e 20 47 50 53 20 69 6e 66 6f 72 6d 61  s in GPS informa
29a0: 74 69 6f 6e 20 61 72 65 20 69 6e 64 69 63 61 74  tion are indicat
29b0: 65 64 20 62 79 20 74 68 65 20 3c 74 74 3e 3c 3c  ed by the <tt><<
29c0: 47 50 53 55 70 64 61 74 65 3e 3e 3c 2f 74 74 3e  GPSUpdate>></tt>
29d0: 20 76 69 72 74 75 61 6c 20 65 76 65 6e 74 20 73   virtual event s
29e0: 65 6e 74 20 74 6f 20 61 6c 6c 20 74 6f 70 6c 65  ent to all tople
29f0: 76 65 6c 20 77 69 64 67 65 74 73 2e 0d 0a 0d 0a  vel widgets.....
2a00: 3c 74 74 3e 62 6f 72 67 20 6c 6f 63 61 74 69 6f  <tt>borg locatio
2a10: 6e 20 6e 6d 65 61 3c 2f 74 74 3e 0d 0a 0d 0a 20  n nmea</tt>.... 
2a20: 20 20 20 52 65 74 75 72 6e 73 20 61 20 73 74 72     Returns a str
2a30: 69 6e 67 20 6d 61 64 65 20 75 70 20 6f 66 20 74  ing made up of t
2a40: 68 65 20 4e 4d 45 41 20 73 65 6e 74 65 6e 63 65  he NMEA sentence
2a50: 73 20 63 6f 6c 6c 65 63 74 65 64 20 6f 76 65 72  s collected over
2a60: 20 74 68 65 20 6c 61 73 74 20 73 65 63 6f 6e 64   the last second
2a70: 2e 20 55 70 64 61 74 65 73 20 69 6e 20 74 68 69  . Updates in thi
2a80: 73 20 73 74 72 69 6e 67 20 61 72 65 20 69 6e 64  s string are ind
2a90: 69 63 61 74 65 64 20 62 79 20 74 68 65 20 3c 74  icated by the <t
2aa0: 74 3e 3c 3c 4e 4d 45 41 55 70 64 61 74 65 3e 3e  t><<NMEAUpdate>>
2ab0: 3c 2f 74 74 3e 20 76 69 72 74 75 61 6c 20 65 76  </tt> virtual ev
2ac0: 65 6e 74 20 73 65 6e 74 20 74 6f 20 61 6c 6c 20  ent sent to all 
2ad0: 74 6f 70 6c 65 76 65 6c 20 77 69 64 67 65 74 73  toplevel widgets
2ae0: 2e 0d 0a 0d 0a 3c 68 34 3e 53 79 73 74 65 6d 2d  .....<h4>System-
2af0: 52 65 6c 61 74 65 64 20 43 6f 6d 6d 61 6e 64 73  Related Commands
2b00: 3c 2f 68 34 3e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72  </h4>....<tt>bor
2b10: 67 20 64 69 73 70 6c 61 79 6d 65 74 72 69 63 73  g displaymetrics
2b20: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74  </tt>....    Ret
2b30: 75 72 6e 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  urns information
2b40: 20 61 62 6f 75 74 20 74 68 65 20 64 69 73 70 6c   about the displ
2b50: 61 79 20 69 6e 20 66 6f 72 6d 20 73 75 69 74 65  ay in form suite
2b60: 64 20 66 6f 72 20 3c 74 74 3e 61 72 72 61 79 20  d for <tt>array 
2b70: 73 65 74 3c 2f 74 74 3e 20 6f 72 20 3c 74 74 3e  set</tt> or <tt>
2b80: 64 69 63 74 20 63 72 65 61 74 65 3c 2f 74 74 3e  dict create</tt>
2b90: 2c 20 65 2e 67 2e 20 64 69 73 70 6c 61 79 20 72  , e.g. display r
2ba0: 65 73 6f 6c 75 74 69 6f 6e 2c 20 70 69 78 65 6c  esolution, pixel
2bb0: 20 64 65 6e 73 69 74 79 2e 20 54 68 65 20 65 6e   density. The en
2bc0: 74 72 79 20 3c 74 74 3e 72 6f 74 61 74 69 6f 6e  try <tt>rotation
2bd0: 3c 2f 74 74 3e 20 67 69 76 65 73 20 74 68 65 20  </tt> gives the 
2be0: 63 75 72 72 65 6e 74 20 73 63 72 65 65 6e 20 72  current screen r
2bf0: 6f 74 61 74 69 6f 6e 20 69 6e 20 64 65 67 72 65  otation in degre
2c00: 65 73 2e 20 54 68 65 20 30 20 64 65 67 72 65 65  es. The 0 degree
2c10: 20 70 6f 69 6e 74 20 76 61 72 69 65 73 20 62 65   point varies be
2c20: 74 77 65 65 6e 20 64 65 76 69 63 65 73 2c 20 74  tween devices, t
2c30: 79 70 69 63 61 6c 20 73 6d 61 72 74 20 70 68 6f  ypical smart pho
2c40: 6e 65 73 20 72 65 70 6f 72 74 20 30 20 66 6f 72  nes report 0 for
2c50: 20 70 6f 72 74 72 61 69 74 2c 20 74 61 62 6c 65   portrait, table
2c60: 74 73 20 72 65 70 6f 72 74 20 30 20 66 6f 72 20  ts report 0 for 
2c70: 6c 61 6e 64 73 63 61 70 65 20 6f 72 69 65 6e 74  landscape orient
2c80: 61 74 69 6f 6e 2e 20 3c 61 20 68 72 65 66 3d 22  ation. <a href="
2c90: 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f 70 65 72  http://developer
2ca0: 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f 72 65 66  .android.com/ref
2cb0: 65 72 65 6e 63 65 2f 61 6e 64 72 6f 69 64 2f 75  erence/android/u
2cc0: 74 69 6c 2f 44 69 73 70 6c 61 79 4d 65 74 72 69  til/DisplayMetri
2cd0: 63 73 2e 68 74 6d 6c 22 3e 4d 6f 72 65 20 69 6e  cs.html">More in
2ce0: 66 6f 72 6d 61 74 69 6f 6e 3c 2f 61 3e 2e 0d 0a  formation</a>...
2cf0: 0d 0a 3c 74 74 3e 62 6f 72 67 20 6f 73 62 75 69  ..<tt>borg osbui
2d00: 6c 64 69 6e 66 6f 3c 2f 74 74 3e 0d 0a 0d 0a 20  ldinfo</tt>.... 
2d10: 20 20 20 52 65 74 75 72 6e 73 20 69 6e 66 6f 72     Returns infor
2d20: 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65  mation about the
2d30: 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65   operating syste
2d40: 6d 20 61 6e 64 20 64 65 76 69 63 65 20 69 6e 20  m and device in 
2d50: 66 6f 72 6d 20 73 75 69 74 65 64 20 66 6f 72 20  form suited for 
2d60: 3c 74 74 3e 61 72 72 61 79 20 73 65 74 3c 2f 74  <tt>array set</t
2d70: 74 3e 20 6f 72 20 3c 74 74 3e 64 69 63 74 20 63  t> or <tt>dict c
2d80: 72 65 61 74 65 3c 2f 74 74 3e 2c 20 65 2e 67 2e  reate</tt>, e.g.
2d90: 20 41 6e 64 72 6f 69 64 20 41 50 49 20 6c 65 76   Android API lev
2da0: 65 6c 2c 20 76 65 72 73 69 6f 6e 2c 20 64 65 76  el, version, dev
2db0: 69 63 65 20 6e 61 6d 65 2c 20 6d 61 6e 75 66 61  ice name, manufa
2dc0: 63 74 75 72 65 72 20 65 74 63 2e 20 3c 61 20 68  cturer etc. <a h
2dd0: 72 65 66 3d 22 68 74 74 70 3a 2f 2f 64 65 76 65  ref="http://deve
2de0: 6c 6f 70 65 72 2e 61 6e 64 72 6f 69 64 2e 63 6f  loper.android.co
2df0: 6d 2f 72 65 66 65 72 65 6e 63 65 2f 61 6e 64 72  m/reference/andr
2e00: 6f 69 64 2f 6f 73 2f 42 75 69 6c 64 2e 68 74 6d  oid/os/Build.htm
2e10: 6c 22 3e 4d 6f 72 65 20 69 6e 66 6f 72 6d 61 74  l">More informat
2e20: 69 6f 6e 3c 2f 61 3e 2e 0d 0a 0d 0a 3c 74 74 3e  ion</a>.....<tt>
2e30: 62 6f 72 67 20 71 75 65 72 79 66 65 61 74 75 72  borg queryfeatur
2e40: 65 73 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52  es</tt>....    R
2e50: 65 74 75 72 6e 73 20 69 6e 66 6f 72 6d 61 74 69  eturns informati
2e60: 6f 6e 20 61 62 6f 75 74 20 66 65 61 74 75 72 65  on about feature
2e70: 73 20 6f 66 20 74 68 65 20 73 79 73 74 65 6d 20  s of the system 
2e80: 28 61 20 6c 65 6e 67 74 68 79 20 6c 69 73 74 20  (a lengthy list 
2e90: 6f 66 20 73 74 72 69 6e 67 73 29 20 77 68 69 63  of strings) whic
2ea0: 68 20 69 73 20 6f 62 74 61 69 6e 65 64 20 66 72  h is obtained fr
2eb0: 6f 6d 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70  om <a href="http
2ec0: 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 61 6e 64  ://developer.and
2ed0: 72 6f 69 64 2e 63 6f 6d 2f 72 65 66 65 72 65 6e  roid.com/referen
2ee0: 63 65 2f 61 6e 64 72 6f 69 64 2f 63 6f 6e 74 65  ce/android/conte
2ef0: 6e 74 2f 70 6d 2f 50 61 63 6b 61 67 65 4d 61 6e  nt/pm/PackageMan
2f00: 61 67 65 72 2e 68 74 6d 6c 23 67 65 74 53 79 73  ager.html#getSys
2f10: 74 65 6d 41 76 61 69 6c 61 62 6c 65 46 65 61 74  temAvailableFeat
2f20: 75 72 65 73 28 29 22 3e 67 65 74 53 79 73 74 65  ures()">getSyste
2f30: 6d 41 76 61 69 6c 61 62 6c 65 46 65 61 74 75 72  mAvailableFeatur
2f40: 65 73 3c 2f 61 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62  es</a>.....<tt>b
2f50: 6f 72 67 20 71 75 65 72 79 63 6f 6e 73 74 73 20  org queryconsts 
2f60: 3c 69 3e 63 6c 61 73 73 6e 61 6d 65 3c 2f 69 3e  <i>classname</i>
2f70: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74  </tt>....    Ret
2f80: 75 72 6e 73 20 61 20 64 69 63 74 69 6f 6e 61 72  urns a dictionar
2f90: 79 20 6f 66 20 63 6f 6e 73 74 61 6e 74 73 20 6f  y of constants o
2fa0: 66 20 74 68 65 20 28 6c 6f 61 64 65 64 29 20 4a  f the (loaded) J
2fb0: 61 76 61 20 63 6c 61 73 73 20 3c 74 74 3e 3c 69  ava class <tt><i
2fc0: 3e 63 6c 61 73 73 6e 61 6d 65 3c 2f 69 3e 3c 2f  >classname</i></
2fd0: 74 74 3e 2e 20 54 68 65 20 6b 65 79 73 20 61 72  tt>. The keys ar
2fe0: 65 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 74  e the names of t
2ff0: 68 65 20 63 6f 6e 73 74 61 6e 74 73 2c 20 74 68  he constants, th
3000: 65 20 76 61 6c 75 65 73 20 74 68 65 69 72 20 76  e values their v
3010: 61 6c 75 65 2e 20 46 6f 72 20 65 78 61 6d 70 6c  alue. For exampl
3020: 65 2c 20 74 68 65 20 73 79 6d 62 6f 6c 73 20 6f  e, the symbols o
3030: 66 20 3c 74 74 3e 53 59 53 54 45 4d 5f 55 49 5f  f <tt>SYSTEM_UI_
3040: 2a 3c 2f 74 74 3e 20 66 6c 61 67 73 20 61 72 65  *</tt> flags are
3050: 20 61 76 61 69 6c 61 62 6c 65 20 77 68 65 6e 20   available when 
3060: 79 6f 75 20 65 76 61 6c 75 61 74 65 3a 0d 0a 0d  you evaluate:...
3070: 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 20 20 20  .<verbatim>..   
3080: 20 62 6f 72 67 20 71 75 65 72 79 63 6f 6e 73 74   borg queryconst
3090: 73 20 61 6e 64 72 6f 69 64 2e 76 69 65 77 2e 56  s android.view.V
30a0: 69 65 77 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e  iew..</verbatim>
30b0: 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 71 75 65  ....<tt>borg que
30c0: 72 79 66 69 65 6c 64 73 20 3c 69 3e 63 6c 61 73  ryfields <i>clas
30d0: 73 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a  sname</i></tt>..
30e0: 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 61 20  ..    Returns a 
30f0: 64 69 63 74 69 6f 6e 61 72 79 20 6f 66 20 63 6f  dictionary of co
3100: 6e 73 74 61 6e 74 73 20 61 6e 64 20 73 74 61 74  nstants and stat
3110: 69 63 20 66 69 65 6c 64 73 20 6f 66 20 74 68 65  ic fields of the
3120: 20 28 6c 6f 61 64 65 64 29 20 4a 61 76 61 20 63   (loaded) Java c
3130: 6c 61 73 73 20 3c 74 74 3e 3c 69 3e 63 6c 61 73  lass <tt><i>clas
3140: 73 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 2e 20  sname</i></tt>. 
3150: 54 68 69 73 20 69 73 20 73 69 6d 69 6c 61 72 20  This is similar 
3160: 74 6f 20 3c 74 74 3e 62 6f 72 67 20 71 75 65 72  to <tt>borg quer
3170: 79 63 6f 6e 73 74 73 3c 2f 74 74 3e 20 62 75 74  yconsts</tt> but
3180: 20 61 6c 6c 6f 77 73 20 74 6f 20 72 65 74 72 69   allows to retri
3190: 65 76 65 20 6e 6f 2d 63 6f 6e 73 74 61 6e 74 20  eve no-constant 
31a0: 73 74 72 69 6e 67 73 2c 20 74 6f 6f 2e 20 4d 6f  strings, too. Mo
31b0: 73 74 20 75 73 65 66 75 6c 20 69 6e 20 63 6f 6d  st useful in com
31c0: 62 69 6e 61 74 69 6f 6e 20 77 69 74 68 20 74 68  bination with th
31d0: 65 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a  e <a href="http:
31e0: 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 61 6e 64 72  //developer.andr
31f0: 6f 69 64 2e 63 6f 6d 2f 72 65 66 65 72 65 6e 63  oid.com/referenc
3200: 65 2f 61 6e 64 72 6f 69 64 2f 6f 73 2f 45 6e 76  e/android/os/Env
3210: 69 72 6f 6e 6d 65 6e 74 2e 68 74 6d 6c 22 3e 61  ironment.html">a
3220: 6e 64 72 6f 69 64 2e 6f 73 2e 45 6e 76 69 72 6f  ndroid.os.Enviro
3230: 6e 6d 65 6e 74 3c 2f 61 3e 20 63 6c 61 73 73 2e  nment</a> class.
3240: 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 70 61 63  ....<tt>borg pac
3250: 6b 61 67 65 69 6e 66 6f 20 3f 3c 69 3e 6e 61 6d  kageinfo ?<i>nam
3260: 65 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20  e</i>?</tt>.... 
3270: 20 20 20 52 65 74 75 72 6e 73 20 69 6e 66 6f 72     Returns infor
3280: 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 69 6e 73  mation about ins
3290: 74 61 6c 6c 65 64 20 70 61 63 6b 61 67 65 73 20  talled packages 
32a0: 6f 72 20 61 6e 20 69 6e 64 69 76 69 64 75 61 6c  or an individual
32b0: 20 70 61 63 6b 61 67 65 20 69 66 20 69 74 73 20   package if its 
32c0: 3c 74 74 3e 3c 69 3e 6e 61 6d 65 3c 2f 69 3e 3c  <tt><i>name</i><
32d0: 2f 74 74 3e 20 69 73 20 67 69 76 65 6e 2e 20 49  /tt> is given. I
32e0: 6e 20 74 68 65 20 66 69 72 73 74 20 63 61 73 65  n the first case
32f0: 2c 20 61 20 6c 69 73 74 20 77 69 74 68 20 70 61  , a list with pa
3300: 63 6b 61 67 65 20 6e 61 6d 65 73 20 69 73 20 72  ckage names is r
3310: 65 74 75 72 6e 65 64 2c 20 69 6e 20 74 68 65 20  eturned, in the 
3320: 6c 61 74 74 65 72 20 63 61 73 65 20 61 20 6c 69  latter case a li
3330: 73 74 20 6f 66 20 6b 65 79 20 76 61 6c 75 65 20  st of key value 
3340: 70 61 69 72 73 20 77 69 74 68 20 70 61 63 6b 61  pairs with packa
3350: 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77  ge information w
3360: 68 69 63 68 20 63 61 6e 20 62 65 20 75 73 65 64  hich can be used
3370: 20 66 6f 72 20 3c 74 74 3e 61 72 72 61 79 20 73   for <tt>array s
3380: 65 74 3c 2f 74 74 3e 20 6f 72 20 3c 74 74 3e 64  et</tt> or <tt>d
3390: 69 63 74 20 63 72 65 61 74 65 3c 2f 74 74 3e 2e  ict create</tt>.
33a0: 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 70 72 6f  ....<tt>borg pro
33b0: 76 69 64 65 72 69 6e 66 6f 3c 2f 74 74 3e 0d 0a  viderinfo</tt>..
33c0: 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74 68  ..    Returns th
33d0: 65 20 61 75 74 68 6f 72 69 74 79 20 6e 61 6d 65  e authority name
33e0: 73 20 6f 66 20 61 6c 6c 20 63 6f 6e 74 65 6e 74  s of all content
33f0: 20 70 72 6f 76 69 64 65 72 73 20 6b 6e 6f 77 6e   providers known
3400: 20 74 6f 20 74 68 65 20 73 79 73 74 65 6d 20 61   to the system a
3410: 73 20 61 20 6c 69 73 74 2e 0d 0a 0d 0a 3c 74 74  s a list.....<tt
3420: 3e 62 6f 72 67 20 6c 6f 67 20 3c 69 3e 70 72 69  >borg log <i>pri
3430: 6f 20 74 61 67 20 6d 65 73 73 61 67 65 3c 2f 69  o tag message</i
3440: 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 57 72  ></tt>....    Wr
3450: 69 74 65 73 20 74 68 65 20 6d 65 73 73 61 67 65  ites the message
3460: 20 3c 74 74 3e 3c 69 3e 6d 65 73 73 61 67 65 3c   <tt><i>message<
3470: 2f 69 3e 3c 2f 74 74 3e 20 74 6f 20 41 6e 64 72  /i></tt> to Andr
3480: 6f 69 64 27 73 20 73 79 73 74 65 6d 20 6c 6f 67  oid's system log
3490: 20 77 69 74 68 20 70 72 69 6f 72 69 74 79 20 3c   with priority <
34a0: 74 74 3e 3c 69 3e 70 72 69 6f 3c 2f 69 3e 3c 2f  tt><i>prio</i></
34b0: 74 74 3e 20 28 6f 6e 65 20 6f 66 20 3c 74 74 3e  tt> (one of <tt>
34c0: 76 65 72 62 6f 73 65 3c 2f 74 74 3e 2c 20 3c 74  verbose</tt>, <t
34d0: 74 3e 64 65 62 75 67 3c 2f 74 74 3e 2c 20 3c 74  t>debug</tt>, <t
34e0: 74 3e 69 6e 66 6f 3c 2f 74 74 3e 2c 20 3c 74 74  t>info</tt>, <tt
34f0: 3e 77 61 72 6e 3c 2f 74 74 3e 2c 20 3c 74 74 3e  >warn</tt>, <tt>
3500: 65 72 72 6f 72 3c 2f 74 74 3e 2c 20 6f 72 20 3c  error</tt>, or <
3510: 74 74 3e 66 61 74 61 6c 3c 2f 74 74 3e 29 20 61  tt>fatal</tt>) a
3520: 6e 64 20 61 20 75 73 65 72 20 63 68 6f 73 65 6e  nd a user chosen
3530: 20 70 72 65 66 69 78 20 3c 74 74 3e 3c 69 3e 74   prefix <tt><i>t
3540: 61 67 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 54 68 65  ag</i></tt>. The
3550: 73 65 20 6c 6f 67 20 6d 65 73 73 61 67 65 73 20  se log messages 
3560: 63 61 6e 20 62 65 20 64 69 73 70 6c 61 79 65 64  can be displayed
3570: 20 75 73 69 6e 67 20 3c 74 74 3e 61 64 62 20 6c   using <tt>adb l
3580: 6f 67 63 61 74 3c 2f 74 74 3e 20 6f 6e 20 74 68  ogcat</tt> on th
3590: 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 73 79  e development sy
35a0: 73 74 65 6d 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72  stem.....<tt>bor
35b0: 67 20 74 72 61 63 65 20 3c 69 3e 6d 65 73 73 61  g trace <i>messa
35c0: 67 65 20 73 63 72 69 70 74 3c 2f 69 3e 3c 2f 74  ge script</i></t
35d0: 74 3e 0d 0a 0d 0a 20 20 20 20 45 76 61 6c 75 61  t>....    Evalua
35e0: 74 65 73 20 3c 74 74 3e 3c 69 3e 73 63 72 69 70  tes <tt><i>scrip
35f0: 74 3c 2f 69 3e 3c 2f 74 74 3e 20 61 6e 64 20 61  t</i></tt> and a
3600: 64 64 73 20 3c 74 74 3e 3c 69 3e 6d 65 73 73 61  dds <tt><i>messa
3610: 67 65 3c 2f 69 3e 3c 2f 74 74 3e 20 62 65 66 6f  ge</i></tt> befo
3620: 72 65 20 61 6e 64 20 61 66 74 65 72 20 74 68 61  re and after tha
3630: 74 20 65 76 61 6c 75 61 74 69 6f 6e 20 74 6f 20  t evaluation to 
3640: 41 6e 64 72 6f 69 64 27 73 20 73 79 73 74 65 6d  Android's system
3650: 20 74 72 61 63 65 20 62 75 66 66 65 72 2e 20 54   trace buffer. T
3660: 68 69 73 20 69 73 20 73 75 70 70 6f 72 74 65 64  his is supported
3670: 20 6f 6e 6c 79 20 6f 6e 20 6e 65 77 65 72 20 41   only on newer A
3680: 6e 64 72 6f 69 64 20 4f 53 20 76 65 72 73 69 6f  ndroid OS versio
3690: 6e 73 20 28 34 2e 33 20 61 6e 64 20 61 62 6f 76  ns (4.3 and abov
36a0: 65 29 20 61 6e 64 20 66 75 72 74 68 65 72 20 64  e) and further d
36b0: 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 65 20  escribed in the 
36c0: 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f  <a href="http://
36d0: 64 65 76 65 6c 6f 70 65 72 2e 61 6e 64 72 6f 69  developer.androi
36e0: 64 2e 63 6f 6d 2f 72 65 66 65 72 65 6e 63 65 2f  d.com/reference/
36f0: 61 6e 64 72 6f 69 64 2f 6f 73 2f 54 72 61 63 65  android/os/Trace
3700: 2e 68 74 6d 6c 22 3e 61 6e 64 72 6f 69 64 2e 6f  .html">android.o
3710: 73 2e 54 72 61 63 65 3c 2f 61 3e 20 63 6c 61 73  s.Trace</a> clas
3720: 73 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 73  s.....<tt>borg s
3730: 79 73 74 65 6d 70 72 6f 70 65 72 74 69 65 73 20  ystemproperties 
3740: 3f 3c 69 3e 6e 61 6d 65 3c 2f 69 3e 3f 3c 2f 74  ?<i>name</i>?</t
3750: 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e  t>....    Return
3760: 73 20 61 20 6c 69 73 74 20 6f 66 20 73 79 73 74  s a list of syst
3770: 65 6d 20 70 72 6f 70 65 72 74 69 65 73 20 28 61  em properties (a
3780: 20 6c 65 6e 67 74 68 79 20 6c 69 73 74 20 6f 66   lengthy list of
3790: 20 6b 65 79 20 76 61 6c 75 65 20 70 61 69 72 73   key value pairs
37a0: 29 20 6f 72 20 74 68 65 20 76 61 6c 75 65 20 6f  ) or the value o
37b0: 66 20 61 20 73 70 65 63 69 66 69 63 20 73 79 73  f a specific sys
37c0: 74 65 6d 20 70 72 6f 70 65 72 74 79 20 69 66 20  tem property if 
37d0: 3c 74 74 3e 3c 69 3e 6e 61 6d 65 3c 2f 69 3e 3c  <tt><i>name</i><
37e0: 2f 74 74 3e 20 69 73 20 67 69 76 65 6e 2e 0d 0a  /tt> is given...
37f0: 0d 0a 3c 74 74 3e 62 6f 72 67 20 63 68 65 63 6b  ..<tt>borg check
3800: 70 65 72 6d 69 73 73 69 6f 6e 20 3c 69 3e 6e 61  permission <i>na
3810: 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20  me</i></tt>.... 
3820: 20 20 20 52 65 74 75 72 6e 73 20 74 72 75 65 20     Returns true 
3830: 6f 72 20 66 61 6c 73 65 20 64 65 70 65 6e 64 69  or false dependi
3840: 6e 67 20 6f 6e 20 6d 61 6e 69 66 65 73 74 20 70  ng on manifest p
3850: 65 72 6d 69 73 73 69 6f 6e 20 3c 74 74 3e 3c 69  ermission <tt><i
3860: 3e 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 2e 20  >name</i></tt>. 
3870: 46 6f 72 20 61 20 64 65 74 61 69 6c 65 64 20 6c  For a detailed l
3880: 69 73 74 20 73 65 65 20 74 68 65 20 64 65 73 63  ist see the desc
3890: 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 3c  ription of the <
38a0: 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 64  a href="http://d
38b0: 65 76 65 6c 6f 70 65 72 2e 61 6e 64 72 6f 69 64  eveloper.android
38c0: 2e 63 6f 6d 2f 72 65 66 65 72 65 6e 63 65 2f 61  .com/reference/a
38d0: 6e 64 72 6f 69 64 2f 4d 61 6e 69 66 65 73 74 2e  ndroid/Manifest.
38e0: 70 65 72 6d 69 73 73 69 6f 6e 2e 68 74 6d 6c 22  permission.html"
38f0: 3e 61 6e 64 72 6f 69 64 2e 4d 61 6e 69 66 65 73  >android.Manifes
3900: 74 2e 70 65 72 6d 69 73 73 69 6f 6e 3c 2f 61 3e  t.permission</a>
3910: 20 63 6c 61 73 73 2e 0d 0a 0d 0a 3c 68 34 3e 53   class.....<h4>S
3920: 65 6e 73 6f 72 2d 52 65 6c 61 74 65 64 20 43 6f  ensor-Related Co
3930: 6d 6d 61 6e 64 73 3c 2f 68 34 3e 0d 0a 0d 0a 3c  mmands</h4>....<
3940: 74 74 3e 62 6f 72 67 20 73 65 6e 73 6f 72 20 6c  tt>borg sensor l
3950: 69 73 74 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  ist</tt>....    
3960: 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f  Returns a list o
3970: 66 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20  f the available 
3980: 73 65 6e 73 6f 72 73 20 6f 66 20 74 68 65 20 64  sensors of the d
3990: 65 76 69 63 65 2e 20 45 61 63 68 20 69 74 65 6d  evice. Each item
39a0: 20 69 73 20 73 75 69 74 65 64 20 66 6f 72 20 3c   is suited for <
39b0: 74 74 3e 61 72 72 61 79 20 73 65 74 3c 2f 74 74  tt>array set</tt
39c0: 3e 20 6f 72 20 3c 74 74 3e 64 69 63 74 20 63 72  > or <tt>dict cr
39d0: 65 61 74 65 3c 2f 74 74 3e 20 61 6e 64 20 63 6f  eate</tt> and co
39e0: 6e 74 61 69 6e 73 20 74 68 65 20 66 69 65 6c 64  ntains the field
39f0: 73 20 3c 74 74 3e 69 6e 64 65 78 3c 2f 74 74 3e  s <tt>index</tt>
3a00: 20 28 69 6e 74 65 67 65 72 20 69 6e 64 65 78 20   (integer index 
3a10: 6f 66 20 74 68 65 20 73 65 6e 73 6f 72 2c 20 75  of the sensor, u
3a20: 73 65 64 20 74 6f 20 69 64 65 6e 74 69 66 79 20  sed to identify 
3a30: 69 74 29 2c 20 3c 74 74 3e 74 79 70 65 3c 2f 74  it), <tt>type</t
3a40: 74 3e 20 28 73 65 6e 73 6f 72 20 74 79 70 65 2c  t> (sensor type,
3a50: 20 6f 6e 65 20 6f 66 20 3c 74 74 3e 61 63 63 65   one of <tt>acce
3a60: 6c 65 72 6f 6d 65 74 65 72 3c 2f 74 74 3e 2c 20  lerometer</tt>, 
3a70: 3c 74 74 3e 74 65 6d 70 65 72 61 74 75 72 65 3c  <tt>temperature<
3a80: 2f 74 74 3e 2c 20 3c 74 74 3e 67 61 6d 65 5f 72  /tt>, <tt>game_r
3a90: 6f 74 61 74 69 6f 6e 5f 76 65 63 74 6f 72 3c 2f  otation_vector</
3aa0: 74 74 3e 2c 20 3c 74 74 3e 67 65 6f 6d 61 67 6e  tt>, <tt>geomagn
3ab0: 65 74 69 63 5f 72 6f 74 61 74 69 6f 6e 5f 76 65  etic_rotation_ve
3ac0: 63 74 6f 72 3c 2f 74 74 3e 2c 20 3c 74 74 3e 67  ctor</tt>, <tt>g
3ad0: 72 61 76 69 74 79 3c 2f 74 74 3e 2c 20 3c 74 74  ravity</tt>, <tt
3ae0: 3e 67 79 72 6f 73 63 6f 70 65 3c 2f 74 74 3e 2c  >gyroscope</tt>,
3af0: 20 3c 74 74 3e 67 79 72 6f 73 63 6f 70 65 5f 75   <tt>gyroscope_u
3b00: 6e 63 61 6c 69 62 72 61 74 65 64 3c 2f 74 74 3e  ncalibrated</tt>
3b10: 2c 20 3c 74 74 3e 6c 69 67 68 74 3c 2f 74 74 3e  , <tt>light</tt>
3b20: 2c 20 3c 74 74 3e 6c 69 6e 65 61 72 5f 61 63 63  , <tt>linear_acc
3b30: 65 6c 65 72 61 74 69 6f 6e 3c 2f 74 74 3e 2c 20  eleration</tt>, 
3b40: 3c 74 74 3e 6d 61 67 6e 65 74 69 63 5f 66 69 65  <tt>magnetic_fie
3b50: 6c 64 3c 2f 74 74 3e 2c 20 3c 74 74 3e 6d 61 67  ld</tt>, <tt>mag
3b60: 6e 65 74 69 63 5f 66 69 65 6c 64 5f 75 6e 63 61  netic_field_unca
3b70: 6c 69 62 72 61 74 65 64 3c 2f 74 74 3e 2c 20 3c  librated</tt>, <
3b80: 74 74 3e 6f 72 69 65 6e 74 61 74 69 6f 6e 3c 2f  tt>orientation</
3b90: 74 74 3e 2c 20 3c 74 74 3e 70 72 65 73 73 75 72  tt>, <tt>pressur
3ba0: 65 3c 2f 74 74 3e 2c 20 3c 74 74 3e 70 72 6f 78  e</tt>, <tt>prox
3bb0: 69 6d 69 74 79 3c 2f 74 74 3e 2c 20 3c 74 74 3e  imity</tt>, <tt>
3bc0: 72 65 6c 61 74 69 76 65 5f 68 75 6d 69 64 69 74  relative_humidit
3bd0: 79 3c 2f 74 74 3e 2c 20 3c 74 74 3e 72 6f 74 61  y</tt>, <tt>rota
3be0: 74 69 6f 6e 5f 76 65 63 74 6f 72 3c 2f 74 74 3e  tion_vector</tt>
3bf0: 2c 20 3c 74 74 3e 73 74 65 70 5f 63 6f 75 6e 74  , <tt>step_count
3c00: 65 72 3c 2f 74 74 3e 2c 20 61 6e 64 20 3c 74 74  er</tt>, and <tt
3c10: 3e 73 74 65 70 5f 64 65 74 65 63 74 6f 72 3c 2f  >step_detector</
3c20: 74 74 3e 29 2c 20 3c 74 74 3e 6d 69 6e 64 65 6c  tt>), <tt>mindel
3c30: 61 79 3c 2f 74 74 3e 20 28 6d 69 6e 69 6d 75 6d  ay</tt> (minimum
3c40: 20 75 70 64 61 74 65 20 69 6e 74 65 72 76 61 6c   update interval
3c50: 20 69 6e 20 6d 69 6c 6c 69 73 65 63 6f 6e 64 73   in milliseconds
3c60: 29 2c 20 3c 74 74 3e 6d 61 78 72 61 6e 67 65 3c  ), <tt>maxrange<
3c70: 2f 74 74 3e 20 28 6d 61 78 69 6d 75 6d 20 72 61  /tt> (maximum ra
3c80: 6e 67 65 2c 20 66 6c 6f 61 74 69 6e 67 20 70 6f  nge, floating po
3c90: 69 6e 74 29 2c 20 3c 74 74 3e 72 65 73 6f 6c 75  int), <tt>resolu
3ca0: 74 69 6f 6e 3c 2f 74 74 3e 20 28 66 6c 6f 61 74  tion</tt> (float
3cb0: 69 6e 67 20 70 6f 69 6e 74 29 2c 20 3c 74 74 3e  ing point), <tt>
3cc0: 70 6f 77 65 72 3c 2f 74 74 3e 20 28 69 6e 20 6d  power</tt> (in m
3cd0: 41 2c 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e  A, floating poin
3ce0: 74 29 2c 20 61 6e 64 20 3c 74 74 3e 6e 61 6d 65  t), and <tt>name
3cf0: 3c 2f 74 74 3e 20 28 6e 61 6d 65 20 6f 66 20 74  </tt> (name of t
3d00: 68 65 20 73 65 6e 73 6f 72 29 2e 20 3c 61 20 68  he sensor). <a h
3d10: 72 65 66 3d 22 68 74 74 70 3a 2f 2f 64 65 76 65  ref="http://deve
3d20: 6c 6f 70 65 72 2e 61 6e 64 72 6f 69 64 2e 63 6f  loper.android.co
3d30: 6d 2f 72 65 66 65 72 65 6e 63 65 2f 61 6e 64 72  m/reference/andr
3d40: 6f 69 64 2f 68 61 72 64 77 61 72 65 2f 53 65 6e  oid/hardware/Sen
3d50: 73 6f 72 2e 68 74 6d 6c 22 3e 4d 6f 72 65 20 69  sor.html">More i
3d60: 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f 61 3e 2e 0d  nformation</a>..
3d70: 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 73 65 6e 73  ...<tt>borg sens
3d80: 6f 72 20 65 6e 61 62 6c 65 7c 64 69 73 61 62 6c  or enable|disabl
3d90: 65 7c 73 74 61 74 65 20 3c 69 3e 69 6e 64 65 78  e|state <i>index
3da0: 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  </i></tt>....   
3db0: 20 54 75 72 6e 73 20 74 68 65 20 73 65 6e 73 6f   Turns the senso
3dc0: 72 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20  r identified by 
3dd0: 3c 74 74 3e 3c 69 3e 69 6e 64 65 78 3c 2f 69 3e  <tt><i>index</i>
3de0: 3c 2f 74 74 3e 20 6f 6e 20 6f 72 20 6f 66 66 2c  </tt> on or off,
3df0: 20 6f 72 20 72 65 74 75 72 6e 73 20 69 74 73 20   or returns its 
3e00: 73 74 61 74 65 20 28 30 3d 6f 66 66 2c 20 31 3d  state (0=off, 1=
3e10: 6f 6e 29 2e 20 41 6e 20 65 6e 61 62 6c 65 64 20  on). An enabled 
3e20: 73 65 6e 73 6f 72 20 67 65 6e 65 72 61 74 65 73  sensor generates
3e30: 20 3c 74 74 3e 3c 3c 53 65 6e 73 6f 72 55 70 64   <tt><<SensorUpd
3e40: 61 74 65 3e 3e 3c 2f 74 74 3e 20 76 69 72 74 75  ate>></tt> virtu
3e50: 61 6c 20 65 76 65 6e 74 73 20 77 68 69 63 68 20  al events which 
3e60: 61 72 65 20 73 65 6e 74 20 74 6f 20 74 6f 70 6c  are sent to topl
3e70: 65 76 65 6c 20 77 69 6e 64 6f 77 73 2e 20 54 68  evel windows. Th
3e80: 65 73 65 20 65 76 65 6e 74 73 20 61 72 65 20 65  ese events are e
3e90: 69 74 68 65 72 20 70 65 72 69 6f 64 69 63 20 75  ither periodic u
3ea0: 70 64 61 74 65 73 20 6f 72 20 63 68 61 6e 67 65  pdates or change
3eb0: 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e 73 20 64   notifications d
3ec0: 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20  epending on the 
3ed0: 6b 69 6e 64 20 6f 66 20 73 65 6e 73 6f 72 20 61  kind of sensor a
3ee0: 6e 64 20 69 74 73 20 72 65 66 72 65 73 68 20 72  nd its refresh r
3ef0: 61 74 65 2e 20 49 66 20 61 20 73 65 6e 73 6f 72  ate. If a sensor
3f00: 20 69 73 20 6e 6f 74 20 72 65 61 64 20 6f 75 74   is not read out
3f10: 20 75 73 69 6e 67 20 3c 74 74 3e 62 6f 72 67 20   using <tt>borg 
3f20: 73 65 6e 73 6f 72 20 67 65 74 20 2e 2e 2e 3c 2f  sensor get ...</
3f30: 74 74 3e 20 66 6f 72 20 61 20 63 65 72 74 61 69  tt> for a certai
3f40: 6e 20 61 6d 6f 75 6e 74 20 6f 66 20 74 69 6d 65  n amount of time
3f50: 20 74 68 61 74 20 73 65 6e 73 6f 72 20 69 73 20   that sensor is 
3f60: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 69  automatically di
3f70: 73 61 62 6c 65 64 20 74 6f 20 63 6f 6e 73 65 72  sabled to conser
3f80: 76 65 20 62 61 74 74 65 72 79 20 70 6f 77 65 72  ve battery power
3f90: 2e 20 49 66 20 74 68 65 20 61 70 70 6c 69 63 61  . If the applica
3fa0: 74 69 6f 6e 20 65 6e 74 65 72 73 20 62 61 63 6b  tion enters back
3fb0: 67 72 6f 75 6e 64 20 28 73 65 65 20 76 69 72 74  ground (see virt
3fc0: 75 61 6c 20 65 76 65 6e 74 20 3c 74 74 3e 3c 3c  ual event <tt><<
3fd0: 57 69 6c 6c 45 6e 74 65 72 42 61 63 6b 67 72 6f  WillEnterBackgro
3fe0: 75 6e 64 3e 3e 3c 2f 74 74 3e 29 20 61 6c 6c 20  und>></tt>) all 
3ff0: 65 6e 61 62 6c 65 64 20 73 65 6e 73 6f 72 73 20  enabled sensors 
4000: 61 72 65 20 64 69 73 61 62 6c 65 64 20 61 6e 64  are disabled and
4010: 20 72 65 2d 65 6e 61 62 6c 65 64 20 61 67 61 69   re-enabled agai
4020: 6e 20 77 68 65 6e 20 74 68 65 20 61 70 70 6c 69  n when the appli
4030: 63 61 74 69 6f 6e 20 63 6f 6d 65 73 20 62 61 63  cation comes bac
4040: 6b 20 74 6f 20 66 6f 72 65 67 72 6f 75 6e 64 20  k to foreground 
4050: 28 73 65 65 20 76 69 72 74 75 61 6c 20 65 76 65  (see virtual eve
4060: 6e 74 20 3c 74 74 3e 3c 3c 57 69 6c 6c 45 6e 74  nt <tt><<WillEnt
4070: 65 72 46 6f 72 65 67 72 6f 75 6e 64 3e 3e 3c 2f  erForeground>></
4080: 74 74 3e 29 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72  tt>).....<tt>bor
4090: 67 20 73 65 6e 73 6f 72 20 67 65 74 20 3c 69 3e  g sensor get <i>
40a0: 69 6e 64 65 78 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a  index</i></tt>..
40b0: 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74 68  ..    Returns th
40c0: 65 20 6c 61 73 74 20 76 61 6c 75 65 20 61 63 71  e last value acq
40d0: 75 69 72 65 64 20 66 72 6f 6d 20 74 68 65 20 73  uired from the s
40e0: 65 6e 73 6f 72 20 69 64 65 6e 74 69 66 69 65 64  ensor identified
40f0: 20 62 79 20 3c 74 74 3e 3c 69 3e 69 6e 64 65 78   by <tt><i>index
4100: 3c 2f 69 3e 3c 2f 74 74 3e 20 61 73 20 61 20 6c  </i></tt> as a l
4110: 69 73 74 20 73 75 69 74 65 64 20 66 6f 72 20 3c  ist suited for <
4120: 74 74 3e 61 72 72 61 79 20 73 65 74 3c 2f 74 74  tt>array set</tt
4130: 3e 20 6f 72 20 3c 74 74 3e 64 69 63 74 20 63 72  > or <tt>dict cr
4140: 65 61 74 65 3c 2f 74 74 3e 20 63 6f 6e 74 61 69  eate</tt> contai
4150: 6e 69 6e 67 20 74 68 65 20 66 69 65 6c 64 73 20  ning the fields 
4160: 3c 74 74 3e 69 6e 64 65 78 3c 2f 74 74 3e 20 28  <tt>index</tt> (
4170: 69 6e 74 65 67 65 72 29 2c 20 3c 74 74 3e 65 6e  integer), <tt>en
4180: 61 62 6c 65 64 3c 2f 74 74 3e 20 28 73 65 6e 73  abled</tt> (sens
4190: 6f 72 20 73 74 61 74 65 2c 20 30 20 6f 72 20 31  or state, 0 or 1
41a0: 29 2c 20 3c 74 74 3e 6d 61 78 72 61 6e 67 65 3c  ), <tt>maxrange<
41b0: 2f 74 74 3e 20 28 73 65 65 20 61 62 6f 76 65 29  /tt> (see above)
41c0: 2c 20 3c 74 74 3e 72 65 73 6f 6c 75 74 69 6f 6e  , <tt>resolution
41d0: 3c 2f 74 74 3e 20 28 73 65 65 20 61 62 6f 76 65  </tt> (see above
41e0: 29 2c 20 3c 74 74 3e 61 63 63 75 72 61 63 79 3c  ), <tt>accuracy<
41f0: 2f 74 74 3e 20 28 74 68 65 20 61 63 63 75 72 61  /tt> (the accura
4200: 63 79 20 6f 66 20 74 68 69 73 20 76 61 6c 75 65  cy of this value
4210: 29 2c 20 3c 74 74 3e 76 61 6c 75 65 73 3c 2f 74  ), <tt>values</t
4220: 74 3e 20 28 74 68 65 20 73 65 6e 73 6f 72 20 76  t> (the sensor v
4230: 61 6c 75 65 2c 20 7a 65 72 6f 20 6f 72 20 6d 6f  alue, zero or mo
4240: 72 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e  re floating poin
4250: 74 20 6e 75 6d 62 65 72 73 29 2e 20 57 68 65 6e  t numbers). When
4260: 20 62 6f 74 68 20 3c 74 74 3e 61 63 63 65 6c 65   both <tt>accele
4270: 72 6f 6d 65 74 65 72 3c 2f 74 74 3e 20 61 6e 64  rometer</tt> and
4280: 20 3c 74 74 3e 6d 61 67 6e 65 74 69 63 5f 66 69   <tt>magnetic_fi
4290: 65 6c 64 3c 2f 74 74 3e 20 73 65 6e 73 6f 72 73  eld</tt> sensors
42a0: 20 61 72 65 20 74 75 72 6e 65 64 20 6f 6e 2c 20   are turned on, 
42b0: 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  the information 
42c0: 66 6f 72 20 74 68 65 20 3c 74 74 3e 6d 61 67 6e  for the <tt>magn
42d0: 65 74 69 63 5f 66 69 65 6c 64 3c 2f 74 74 3e 20  etic_field</tt> 
42e0: 73 65 6e 73 6f 72 20 68 61 73 20 74 77 6f 20 61  sensor has two a
42f0: 64 64 69 74 69 6f 6e 61 6c 20 65 6e 74 72 69 65  dditional entrie
4300: 73 20 3c 74 74 3e 6f 72 69 65 6e 74 61 74 69 6f  s <tt>orientatio
4310: 6e 3c 2f 74 74 3e 20 28 33 20 65 6c 65 6d 65 6e  n</tt> (3 elemen
4320: 74 20 6c 69 73 74 20 6f 66 20 61 7a 69 6d 75 74  t list of azimut
4330: 68 2c 20 70 69 74 63 68 2c 20 72 6f 6c 6c 29 20  h, pitch, roll) 
4340: 61 6e 64 20 3c 74 74 3e 69 6e 63 6c 69 6e 61 74  and <tt>inclinat
4350: 69 6f 6e 3c 2f 74 74 3e 2e 20 54 68 65 20 3c 74  ion</tt>. The <t
4360: 74 3e 70 72 65 73 73 75 72 65 3c 2f 74 74 3e 20  t>pressure</tt> 
4370: 73 65 6e 73 6f 72 20 68 61 73 20 61 6e 20 61 64  sensor has an ad
4380: 64 69 74 69 6f 6e 61 6c 20 65 6e 74 72 79 20 3c  ditional entry <
4390: 74 74 3e 61 6c 74 69 74 75 64 65 3c 2f 74 74 3e  tt>altitude</tt>
43a0: 20 28 6d 65 74 65 72 73 20 61 62 6f 76 65 20 73   (meters above s
43b0: 65 61 20 6c 65 76 65 6c 29 2e 20 3c 61 20 68 72  ea level). <a hr
43c0: 65 66 3d 22 68 74 74 70 3a 2f 2f 64 65 76 65 6c  ef="http://devel
43d0: 6f 70 65 72 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d  oper.android.com
43e0: 2f 72 65 66 65 72 65 6e 63 65 2f 61 6e 64 72 6f  /reference/andro
43f0: 69 64 2f 68 61 72 64 77 61 72 65 2f 53 65 6e 73  id/hardware/Sens
4400: 6f 72 45 76 65 6e 74 2e 68 74 6d 6c 22 3e 4d 6f  orEvent.html">Mo
4410: 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f  re information</
4420: 61 3e 2e 0d 0a 0d 0a 3c 68 34 3e 41 6e 64 72 6f  a>.....<h4>Andro
4430: 69 64 20 43 6f 6e 74 65 6e 74 20 28 73 68 61 72  id Content (shar
4440: 65 64 20 64 61 74 61 62 61 73 65 73 29 3c 2f 68  ed databases)</h
4450: 34 3e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 63  4>....<tt>borg c
4460: 6f 6e 74 65 6e 74 20 71 75 65 72 79 20 3c 69 3e  ontent query <i>
4470: 75 72 69 3c 2f 69 3e 20 3f 3c 69 3e 63 6f 6c 75  uri</i> ?<i>colu
4480: 6d 6e 73 3c 2f 69 3e 20 3f 3c 69 3e 77 68 65 72  mns</i> ?<i>wher
4490: 65 3c 2f 69 3e 20 3f 3c 69 3e 77 68 65 72 65 61  e</i> ?<i>wherea
44a0: 72 67 73 3c 2f 69 3e 20 3f 3c 69 3e 6f 72 64 65  rgs</i> ?<i>orde
44b0: 72 62 79 3c 2f 69 3e 3f 3f 3f 3f 3c 2f 74 74 3e  rby</i>????</tt>
44c0: 0d 0a 0d 0a 20 20 20 20 50 65 72 66 6f 72 6d 73  ....    Performs
44d0: 20 61 20 71 75 65 72 79 20 6f 6e 20 61 6e 20 41   a query on an A
44e0: 6e 64 72 6f 69 64 20 63 6f 6e 74 65 6e 74 20 70  ndroid content p
44f0: 72 6f 76 69 64 65 72 20 67 69 76 65 6e 20 62 79  rovider given by
4500: 20 3c 74 74 3e 3c 69 3e 75 72 69 3c 2f 69 3e 3c   <tt><i>uri</i><
4510: 2f 74 74 3e 20 61 6e 64 20 72 65 74 75 72 6e 73  /tt> and returns
4520: 20 61 20 63 75 72 73 6f 72 20 74 6f 6b 65 6e 20   a cursor token 
4530: 28 61 20 54 63 6c 20 63 6f 6d 6d 61 6e 64 20 77  (a Tcl command w
4540: 68 69 63 68 20 64 65 61 6c 73 20 77 69 74 68 20  hich deals with 
4550: 74 68 61 74 20 63 75 72 73 6f 72 29 2e 20 54 68  that cursor). Th
4560: 65 20 6f 70 74 69 6f 6e 61 6c 20 3c 74 74 3e 3c  e optional <tt><
4570: 69 3e 63 6f 6c 75 6d 6e 73 3c 2f 69 3e 3c 2f 74  i>columns</i></t
4580: 74 3e 20 61 72 65 20 61 20 6c 69 73 74 20 6f 66  t> are a list of
4590: 20 64 61 74 61 62 61 73 65 20 63 6f 6c 75 6d 6e   database column
45a0: 73 20 74 6f 20 61 70 70 65 61 72 20 69 6e 20 74  s to appear in t
45b0: 68 65 20 72 65 73 75 6c 74 20 73 65 74 2c 20 65  he result set, e
45c0: 2e 67 2e 0d 0a 0d 0a 3c 76 65 72 62 61 74 69 6d  .g.....<verbatim
45d0: 3e 0d 0a 20 20 20 20 73 65 74 20 63 75 72 73 6f  >..    set curso
45e0: 72 20 5b 62 6f 72 67 20 63 6f 6e 74 65 6e 74 20  r [borg content 
45f0: 71 75 65 72 79 20 63 6f 6e 74 65 6e 74 3a 2f 2f  query content://
4600: 63 6f 6e 74 61 63 74 73 2f 70 65 6f 70 6c 65 20  contacts/people 
4610: 7b 64 69 73 70 6c 61 79 5f 6e 61 6d 65 20 5f 69  {display_name _i
4620: 64 7d 5d 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e  d}]..</verbatim>
4630: 0d 0a 0d 0a 20 20 20 20 77 68 65 72 65 20 61 6e  ....    where an
4640: 20 65 6d 70 74 79 20 6c 69 73 74 20 6f 66 20 64   empty list of d
4650: 61 74 61 62 61 73 65 20 63 6f 6c 75 6d 6e 73 20  atabase columns 
4660: 77 6f 72 6b 73 20 6c 69 6b 65 20 74 68 65 20 53  works like the S
4670: 51 4c 20 73 74 61 74 65 6d 65 6e 74 20 22 53 45  QL statement "SE
4680: 4c 45 43 54 20 2a 22 2e 0d 0a 0d 0a 20 20 20 20  LECT *".....    
4690: 54 68 65 20 6f 70 74 69 6f 6e 61 6c 20 3c 74 74  The optional <tt
46a0: 3e 3c 69 3e 77 68 65 72 65 3c 2f 69 3e 3c 2f 74  ><i>where</i></t
46b0: 74 3e 20 61 6e 64 20 3c 74 74 3e 3c 69 3e 77 68  t> and <tt><i>wh
46c0: 65 72 65 61 72 67 73 3c 2f 69 3e 3c 2f 74 74 3e  ereargs</i></tt>
46d0: 20 70 61 72 61 6d 65 74 65 72 73 20 66 6f 72 6d   parameters form
46e0: 20 74 68 65 20 53 51 4c 20 57 48 45 52 45 20 63   the SQL WHERE c
46f0: 6c 61 75 73 65 20 6f 66 20 74 68 65 20 71 75 65  lause of the que
4700: 72 79 2e 20 51 75 65 73 74 69 6f 6e 20 6d 61 72  ry. Question mar
4710: 6b 20 70 61 72 61 6d 65 74 65 72 20 6d 61 72 6b  k parameter mark
4720: 65 72 73 20 69 6e 20 3c 74 74 3e 3c 69 3e 77 68  ers in <tt><i>wh
4730: 65 72 65 3c 2f 69 3e 3c 2f 74 74 3e 20 61 72 65  ere</i></tt> are
4740: 20 70 6f 73 69 74 69 6f 6e 61 6c 6c 79 20 73 75   positionally su
4750: 62 73 74 69 74 75 74 65 64 20 62 79 20 74 68 65  bstituted by the
4760: 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f   information fro
4770: 6d 20 74 68 65 20 3c 74 74 3e 3c 69 3e 77 68 65  m the <tt><i>whe
4780: 72 65 61 72 67 73 3c 2f 69 3e 3c 2f 74 74 3e 20  reargs</i></tt> 
4790: 6c 69 73 74 2e 20 49 66 20 74 68 65 20 3c 74 74  list. If the <tt
47a0: 3e 3c 69 3e 77 68 65 72 65 3c 2f 69 3e 3c 2f 74  ><i>where</i></t
47b0: 74 3e 20 70 61 72 61 6d 65 74 65 72 20 64 6f 65  t> parameter doe
47c0: 73 20 6e 6f 74 20 75 73 65 20 61 20 71 75 65 73  s not use a ques
47d0: 74 69 6f 6e 20 6d 61 72 6b 20 70 61 72 61 6d 65  tion mark parame
47e0: 74 65 72 20 6d 61 72 6b 65 72 2c 20 61 6e 20 65  ter marker, an e
47f0: 6d 70 74 79 20 70 61 72 61 6d 65 74 65 72 20 73  mpty parameter s
4800: 74 72 69 6e 67 20 69 73 20 6f 62 6c 69 67 61 74  tring is obligat
4810: 6f 72 79 20 61 73 20 69 6e 0d 0a 0d 0a 3c 76 65  ory as in....<ve
4820: 72 62 61 74 69 6d 3e 0d 0a 20 20 20 20 73 65 74  rbatim>..    set
4830: 20 63 75 72 73 6f 72 20 5b 62 6f 72 67 20 63 6f   cursor [borg co
4840: 6e 74 65 6e 74 20 71 75 65 72 79 20 63 6f 6e 74  ntent query cont
4850: 65 6e 74 3a 2f 2f 63 6f 6e 74 61 63 74 73 2f 70  ent://contacts/p
4860: 65 6f 70 6c 65 20 7b 7d 20 22 5f 69 64 3d 38 31  eople {} "_id=81
4870: 30 22 20 7b 7d 5d 0d 0a 3c 2f 76 65 72 62 61 74  0" {}]..</verbat
4880: 69 6d 3e 0d 0a 0d 0a 20 20 20 20 77 68 69 63 68  im>....    which
4890: 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74   is equivalent t
48a0: 6f 0d 0a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d  o....<verbatim>.
48b0: 0a 20 20 20 20 73 65 74 20 63 75 72 73 6f 72 20  .    set cursor 
48c0: 5b 62 6f 72 67 20 63 6f 6e 74 65 6e 74 20 71 75  [borg content qu
48d0: 65 72 79 20 63 6f 6e 74 65 6e 74 3a 2f 2f 63 6f  ery content://co
48e0: 6e 74 61 63 74 73 2f 70 65 6f 70 6c 65 20 7b 7d  ntacts/people {}
48f0: 20 22 5f 69 64 3d 3f 22 20 38 31 30 5d 0d 0a 3c   "_id=?" 810]..<
4900: 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 0d 0a 20 20  /verbatim>....  
4910: 20 20 54 68 65 20 6f 70 74 69 6f 6e 61 6c 20 3c    The optional <
4920: 74 74 3e 3c 69 3e 6f 72 64 65 72 62 79 3c 2f 69  tt><i>orderby</i
4930: 3e 3c 2f 74 74 3e 20 66 6f 72 6d 73 20 74 68 65  ></tt> forms the
4940: 20 53 51 4c 20 4f 52 44 45 52 42 59 20 70 61 72   SQL ORDERBY par
4950: 74 20 6f 66 20 74 68 65 20 71 75 65 72 79 2e 0d  t of the query..
4960: 0a 0d 0a 20 20 20 20 48 65 72 65 27 73 20 61 6e  ...    Here's an
4970: 6f 74 68 65 72 20 65 78 61 6d 70 6c 65 20 64 65  other example de
4980: 6d 6f 6e 73 74 72 61 74 69 6e 67 20 68 6f 77 20  monstrating how 
4990: 64 61 74 61 20 69 73 20 72 65 74 72 69 65 76 65  data is retrieve
49a0: 64 3a 0d 0a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e  d:....<verbatim>
49b0: 0d 0a 20 20 20 20 73 65 74 20 63 75 72 73 6f 72  ..    set cursor
49c0: 20 5b 62 6f 72 67 20 63 6f 6e 74 65 6e 74 20 71   [borg content q
49d0: 75 65 72 79 20 63 6f 6e 74 65 6e 74 3a 2f 2f 73  uery content://s
49e0: 65 74 74 69 6e 67 73 2f 73 79 73 74 65 6d 5d 0d  ettings/system].
49f0: 0a 20 20 20 20 23 20 69 6e 69 74 69 61 6c 6c 79  .    # initially
4a00: 2c 20 63 75 72 73 6f 72 20 70 6f 69 6e 74 73 20  , cursor points 
4a10: 62 65 66 6f 72 65 20 66 69 72 73 74 20 72 6f 77  before first row
4a20: 0d 0a 20 20 20 20 77 68 69 6c 65 20 7b 5b 24 63  ..    while {[$c
4a30: 75 72 73 6f 72 20 6d 6f 76 65 20 31 5d 7d 20 7b  ursor move 1]} {
4a40: 0d 0a 20 20 20 20 20 20 20 20 70 75 74 73 20 5b  ..        puts [
4a50: 24 63 75 72 73 6f 72 20 67 65 74 72 6f 77 5d 0d  $cursor getrow].
4a60: 0a 20 20 20 20 7d 0d 0a 3c 2f 76 65 72 62 61 74  .    }..</verbat
4a70: 69 6d 3e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20  im>....<tt>borg 
4a80: 63 6f 6e 74 65 6e 74 20 64 65 6c 65 74 65 20 3c  content delete <
4a90: 69 3e 75 72 69 20 73 65 6c 65 63 74 69 6f 6e 3c  i>uri selection<
4aa0: 2f 69 3e 20 3f 3c 69 3e 76 61 6c 75 65 20 2e 2e  /i> ?<i>value ..
4ab0: 2e 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20  .</i>?</tt>.... 
4ac0: 20 20 20 44 65 6c 65 74 65 73 20 72 6f 77 73 20     Deletes rows 
4ad0: 66 72 6f 6d 20 61 6e 20 41 6e 64 72 6f 69 64 20  from an Android 
4ae0: 63 6f 6e 74 65 6e 74 20 70 72 6f 76 69 64 65 72  content provider
4af0: 20 67 69 76 65 6e 20 62 79 20 3c 74 74 3e 3c 69   given by <tt><i
4b00: 3e 75 72 69 3c 2f 69 3e 3c 2f 74 74 3e 20 61 6e  >uri</i></tt> an
4b10: 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e 75  d returns the nu
4b20: 6d 62 65 72 20 6f 66 20 64 65 6c 65 74 65 64 20  mber of deleted 
4b30: 72 6f 77 73 2e 20 3c 74 74 3e 3c 69 3e 73 65 6c  rows. <tt><i>sel
4b40: 65 63 74 69 6f 6e 3c 2f 69 3e 3c 2f 74 74 3e 20  ection</i></tt> 
4b50: 66 6f 72 6d 73 20 74 68 65 20 53 51 4c 20 57 48  forms the SQL WH
4b60: 45 52 45 20 63 6c 61 75 73 65 20 6f 66 20 74 68  ERE clause of th
4b70: 65 20 64 65 6c 65 74 69 6f 6e 20 77 68 65 72 65  e deletion where
4b80: 20 71 75 65 73 74 69 6f 6e 20 6d 61 72 6b 20 70   question mark p
4b90: 61 72 61 6d 65 74 65 72 20 6d 61 72 6b 65 72 73  arameter markers
4ba0: 20 61 72 65 20 73 75 62 73 74 69 74 75 74 65 64   are substituted
4bb0: 20 62 79 20 3c 74 74 3e 3c 69 3e 76 61 6c 75 65   by <tt><i>value
4bc0: 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 45 78 61 6d 70  </i></tt>. Examp
4bd0: 6c 65 3a 0d 0a 0d 0a 3c 76 65 72 62 61 74 69 6d  le:....<verbatim
4be0: 3e 0d 0a 20 20 20 20 62 6f 72 67 20 63 6f 6e 74  >..    borg cont
4bf0: 65 6e 74 20 64 65 6c 65 74 65 20 63 6f 6e 74 65  ent delete conte
4c00: 6e 74 3a 2f 2f 73 65 74 74 69 6e 67 73 2f 73 79  nt://settings/sy
4c10: 73 74 65 6d 20 6e 61 6d 65 3d 3f 20 6d 79 5f 69  stem name=? my_i
4c20: 74 65 6d 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e  tem..</verbatim>
4c30: 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 63 6f 6e  ....<tt>borg con
4c40: 74 65 6e 74 20 69 6e 73 65 72 74 20 3c 69 3e 75  tent insert <i>u
4c50: 72 69 20 6b 65 79 20 76 61 6c 75 65 20 2e 2e 2e  ri key value ...
4c60: 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  </i></tt>....   
4c70: 20 49 6e 73 65 72 74 73 20 61 20 72 6f 77 20 69   Inserts a row i
4c80: 6e 74 6f 20 61 6e 20 41 6e 64 72 6f 69 64 20 63  nto an Android c
4c90: 6f 6e 74 65 6e 74 20 70 72 6f 76 69 64 65 72 20  ontent provider 
4ca0: 67 69 76 65 6e 20 62 79 20 3c 74 74 3e 3c 69 3e  given by <tt><i>
4cb0: 75 72 69 3c 2f 69 3e 3c 2f 74 74 3e 20 61 6e 64  uri</i></tt> and
4cc0: 20 72 65 74 75 72 6e 73 20 61 6e 6f 74 68 65 72   returns another
4cd0: 20 55 52 49 20 77 68 69 63 68 20 69 64 65 6e 74   URI which ident
4ce0: 69 66 69 65 73 20 74 68 65 20 69 6e 73 65 72 74  ifies the insert
4cf0: 65 64 20 72 6f 77 2e 20 3c 74 74 3e 3c 69 3e 6b  ed row. <tt><i>k
4d00: 65 79 3c 2f 69 3e 3c 2f 74 74 3e 20 61 6e 64 20  ey</i></tt> and 
4d10: 3c 74 74 3e 3c 69 3e 76 61 6c 75 65 3c 2f 69 3e  <tt><i>value</i>
4d20: 3c 2f 74 74 3e 20 61 72 65 20 70 61 69 72 73 20  </tt> are pairs 
4d30: 6f 66 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 20 61  of column name a
4d40: 6e 64 20 63 6f 6c 75 6d 6e 20 76 61 6c 75 65 20  nd column value 
4d50: 66 6f 72 20 74 68 65 20 53 51 4c 20 49 4e 53 45  for the SQL INSE
4d60: 52 54 20 6f 70 65 72 61 74 69 6f 6e 2e 20 45 78  RT operation. Ex
4d70: 61 6d 70 6c 65 3a 0d 0a 0d 0a 3c 76 65 72 62 61  ample:....<verba
4d80: 74 69 6d 3e 0d 0a 20 20 20 20 62 6f 72 67 20 63  tim>..    borg c
4d90: 6f 6e 74 65 6e 74 20 69 6e 73 65 72 74 20 63 6f  ontent insert co
4da0: 6e 74 65 6e 74 3a 2f 2f 73 65 74 74 69 6e 67 73  ntent://settings
4db0: 2f 73 79 73 74 65 6d 20 6e 61 6d 65 20 6d 79 5f  /system name my_
4dc0: 69 74 65 6d 20 76 61 6c 75 65 20 22 53 6f 6d 65  item value "Some
4dd0: 20 76 61 6c 75 65 22 0d 0a 20 20 20 20 2d 3e 20   value"..    -> 
4de0: 63 6f 6e 74 65 6e 74 3a 2f 2f 73 65 74 74 69 6e  content://settin
4df0: 67 73 2f 73 79 73 74 65 6d 2f 34 37 31 31 0d 0a  gs/system/4711..
4e00: 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 0d 0a 3c  </verbatim>....<
4e10: 74 74 3e 62 6f 72 67 20 63 6f 6e 74 65 6e 74 20  tt>borg content 
4e20: 75 70 64 61 74 65 20 3c 69 3e 75 72 69 20 76 61  update <i>uri va
4e30: 6c 75 65 73 3c 2f 69 3e 20 3f 3c 69 3e 73 65 6c  lues</i> ?<i>sel
4e40: 65 63 74 69 6f 6e 3c 2f 69 3e 20 3f 3c 69 3e 61  ection</i> ?<i>a
4e50: 72 67 73 3c 2f 69 3e 3f 3f 3c 2f 74 74 3e 0d 0a  rgs</i>??</tt>..
4e60: 0d 0a 20 20 20 20 55 70 64 61 74 65 73 20 7a 65  ..    Updates ze
4e70: 72 6f 20 6f 72 20 6d 6f 72 65 20 72 6f 77 73 20  ro or more rows 
4e80: 6f 66 20 61 6e 20 41 6e 64 72 6f 69 64 20 63 6f  of an Android co
4e90: 6e 74 65 6e 74 20 70 72 6f 76 69 64 65 72 20 67  ntent provider g
4ea0: 69 76 65 6e 20 62 79 20 3c 74 74 3e 3c 69 3e 75  iven by <tt><i>u
4eb0: 72 69 3c 2f 69 3e 3c 2f 74 74 3e 20 61 6e 64 20  ri</i></tt> and 
4ec0: 72 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62  returns the numb
4ed0: 65 72 20 6f 66 20 75 70 64 61 74 65 64 20 72 6f  er of updated ro
4ee0: 77 73 2e 20 3c 74 74 3e 3c 69 3e 76 61 6c 75 65  ws. <tt><i>value
4ef0: 73 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 61 20  s</i></tt> is a 
4f00: 6c 69 73 74 20 6d 61 64 65 20 75 70 20 6f 66 20  list made up of 
4f10: 61 20 73 65 71 75 65 6e 63 65 20 6f 66 20 63 6f  a sequence of co
4f20: 6c 75 6d 6e 20 6e 61 6d 65 73 20 61 6e 64 20 63  lumn names and c
4f30: 6f 6c 75 6d 6e 20 76 61 6c 75 65 73 2e 20 3c 74  olumn values. <t
4f40: 74 3e 3c 69 3e 73 65 6c 65 63 74 69 6f 6e 3c 2f  t><i>selection</
4f50: 69 3e 3c 2f 74 74 3e 20 69 73 20 74 68 65 20 6f  i></tt> is the o
4f60: 70 74 69 6f 6e 61 6c 20 53 51 4c 20 57 48 45 52  ptional SQL WHER
4f70: 45 20 63 6c 61 75 73 65 20 77 69 74 68 20 71 75  E clause with qu
4f80: 65 73 74 69 6f 6e 20 6d 61 72 6b 20 70 61 72 61  estion mark para
4f90: 6d 65 74 65 72 20 6d 61 72 6b 65 72 73 2e 20 54  meter markers. T
4fa0: 68 65 20 70 61 72 61 6d 65 74 65 72 20 6d 61 72  he parameter mar
4fb0: 6b 65 72 73 20 61 72 65 20 73 75 62 73 74 69 74  kers are substit
4fc0: 75 74 65 64 20 62 79 20 74 68 65 20 76 61 6c 75  uted by the valu
4fd0: 65 73 20 66 72 6f 6d 20 3c 74 74 3e 3c 69 3e 61  es from <tt><i>a
4fe0: 72 67 73 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 45 78  rgs</i></tt>. Ex
4ff0: 61 6d 70 6c 65 3a 0d 0a 0d 0a 3c 76 65 72 62 61  ample:....<verba
5000: 74 69 6d 3e 0d 0a 20 20 20 20 23 20 73 79 73 74  tim>..    # syst
5010: 65 6d 20 73 65 74 74 69 6e 67 73 20 77 61 6e 74  em settings want
5020: 73 20 74 68 65 20 6e 61 6d 65 20 69 6e 20 74 68  s the name in th
5030: 65 20 55 52 49 0d 0a 20 20 20 20 62 6f 72 67 20  e URI..    borg 
5040: 63 6f 6e 74 65 6e 74 20 75 70 64 61 74 65 20 63  content update c
5050: 6f 6e 74 65 6e 74 3a 2f 2f 73 65 74 74 69 6e 67  ontent://setting
5060: 73 2f 73 79 73 74 65 6d 2f 6d 79 5f 69 74 65 6d  s/system/my_item
5070: 20 7b 76 61 6c 75 65 20 7b 4e 65 77 20 56 61 6c   {value {New Val
5080: 75 65 7d 7d 0d 0a 3c 2f 76 65 72 62 61 74 69 6d  ue}}..</verbatim
5090: 3e 0d 0a 0d 0a 3c 68 34 3e 43 75 72 73 6f 72 73  >....<h4>Cursors
50a0: 20 66 72 6f 6d 20 41 6e 64 72 6f 69 64 20 43 6f   from Android Co
50b0: 6e 74 65 6e 74 20 71 75 65 72 69 65 73 3c 2f 68  ntent queries</h
50c0: 34 3e 0d 0a 0d 0a 57 68 65 6e 20 61 20 3c 74 74  4>....When a <tt
50d0: 3e 62 6f 72 67 20 63 6f 6e 74 65 6e 74 3c 2f 74  >borg content</t
50e0: 74 3e 20 71 75 65 72 79 20 72 65 74 75 72 6e 65  t> query returne
50f0: 64 20 61 20 63 75 72 73 6f 72 20 74 6f 6b 65 6e  d a cursor token
5100: 2c 20 74 68 69 73 20 74 6f 6b 65 6e 20 69 73 20  , this token is 
5110: 61 20 54 63 6c 20 63 6f 6d 6d 61 6e 64 20 74 6f  a Tcl command to
5120: 20 64 65 61 6c 20 77 69 74 68 20 74 68 65 20 71   deal with the q
5130: 75 65 72 79 27 73 20 72 65 73 75 6c 74 20 73 65  uery's result se
5140: 74 3a 0d 0a 0d 0a 3c 74 74 3e 24 63 75 72 73 6f  t:....<tt>$curso
5150: 72 20 63 6c 6f 73 65 3c 2f 74 74 3e 0d 0a 0d 0a  r close</tt>....
5160: 20 20 20 20 46 69 6e 69 73 68 65 73 20 74 68 65      Finishes the
5170: 20 71 75 65 72 79 20 61 6e 64 20 64 65 6c 65 74   query and delet
5180: 65 73 20 74 68 65 20 54 63 6c 20 63 6f 6d 6d 61  es the Tcl comma
5190: 6e 64 2e 0d 0a 0d 0a 3c 74 74 3e 24 63 75 72 73  nd.....<tt>$curs
51a0: 6f 72 20 63 6f 6c 75 6d 6e 6e 61 6d 65 73 3c 2f  or columnnames</
51b0: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72  tt>....    Retur
51c0: 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6c  ns a list of col
51d0: 75 6d 6e 20 6e 61 6d 65 73 20 6f 66 20 74 68 65  umn names of the
51e0: 20 72 65 73 75 6c 74 20 73 65 74 2e 0d 0a 0d 0a   result set.....
51f0: 3c 74 74 3e 24 63 75 72 73 6f 72 20 63 6f 75 6e  <tt>$cursor coun
5200: 74 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65  t</tt>....    Re
5210: 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72  turns the number
5220: 20 6f 66 20 72 6f 77 73 20 6f 66 20 74 68 65 20   of rows of the 
5230: 72 65 73 75 6c 74 20 73 65 74 2e 0d 0a 0d 0a 3c  result set.....<
5240: 74 74 3e 24 63 75 72 73 6f 72 20 67 65 74 62 6c  tt>$cursor getbl
5250: 6f 62 20 3c 69 3e 69 6e 64 65 78 3c 2f 69 3e 3c  ob <i>index</i><
5260: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75  /tt>....    Retu
5270: 72 6e 73 20 74 68 65 20 3c 74 74 3e 3c 69 3e 69  rns the <tt><i>i
5280: 6e 64 65 78 3c 2f 69 3e 3c 2f 74 74 3e 74 68 20  ndex</i></tt>th 
5290: 63 6f 6c 75 6d 6e 20 28 7a 65 72 6f 2d 62 61 73  column (zero-bas
52a0: 65 64 29 20 6f 66 20 74 68 65 20 63 75 72 72 65  ed) of the curre
52b0: 6e 74 20 72 6f 77 20 6f 66 20 74 68 65 20 72 65  nt row of the re
52c0: 73 75 6c 74 20 73 65 74 20 61 73 20 61 20 62 61  sult set as a ba
52d0: 73 65 36 34 20 65 6e 63 6f 64 65 64 20 73 74 72  se64 encoded str
52e0: 69 6e 67 2e 0d 0a 0d 0a 3c 74 74 3e 24 63 75 72  ing.....<tt>$cur
52f0: 73 6f 72 20 67 65 74 64 6f 75 62 6c 65 20 3c 69  sor getdouble <i
5300: 3e 69 6e 64 65 78 3c 2f 69 3e 3c 2f 74 74 3e 0d  >index</i></tt>.
5310: 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74  ...    Returns t
5320: 68 65 20 3c 74 74 3e 3c 69 3e 69 6e 64 65 78 3c  he <tt><i>index<
5330: 2f 69 3e 3c 2f 74 74 3e 74 68 20 63 6f 6c 75 6d  /i></tt>th colum
5340: 6e 20 28 7a 65 72 6f 2d 62 61 73 65 64 29 20 6f  n (zero-based) o
5350: 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 6f  f the current ro
5360: 77 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20  w of the result 
5370: 73 65 74 20 61 73 20 61 20 66 6c 6f 61 74 69 6e  set as a floatin
5380: 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 0d  g point number..
5390: 0a 0d 0a 3c 74 74 3e 24 63 75 72 73 6f 72 20 67  ...<tt>$cursor g
53a0: 65 74 69 6e 74 20 3c 69 3e 69 6e 64 65 78 3c 2f  etint <i>index</
53b0: 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52  i></tt>....    R
53c0: 65 74 75 72 6e 73 20 74 68 65 20 3c 74 74 3e 3c  eturns the <tt><
53d0: 69 3e 69 6e 64 65 78 3c 2f 69 3e 3c 2f 74 74 3e  i>index</i></tt>
53e0: 74 68 20 63 6f 6c 75 6d 6e 20 28 7a 65 72 6f 2d  th column (zero-
53f0: 62 61 73 65 64 29 20 6f 66 20 74 68 65 20 63 75  based) of the cu
5400: 72 72 65 6e 74 20 72 6f 77 20 6f 66 20 74 68 65  rrent row of the
5410: 20 72 65 73 75 6c 74 20 73 65 74 20 61 73 20 61   result set as a
5420: 20 69 6e 74 65 67 65 72 20 6e 75 6d 62 65 72 2e   integer number.
5430: 0d 0a 0d 0a 3c 74 74 3e 24 63 75 72 73 6f 72 20  ....<tt>$cursor 
5440: 67 65 74 70 6f 73 3c 2f 74 74 3e 0d 0a 0d 0a 20  getpos</tt>.... 
5450: 20 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 69     Returns the i
5460: 6e 64 65 78 20 6f 66 20 74 68 65 20 63 75 72 72  ndex of the curr
5470: 65 6e 74 20 72 6f 77 20 28 7a 65 72 6f 2d 62 61  ent row (zero-ba
5480: 73 65 64 29 2e 0d 0a 0d 0a 3c 74 74 3e 24 63 75  sed).....<tt>$cu
5490: 72 73 6f 72 20 67 65 74 72 6f 77 3c 2f 74 74 3e  rsor getrow</tt>
54a0: 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20  ....    Returns 
54b0: 74 68 65 20 63 75 72 72 65 6e 74 20 72 6f 77 20  the current row 
54c0: 61 73 20 61 20 54 63 6c 20 6c 69 73 74 20 6d 61  as a Tcl list ma
54d0: 64 65 20 75 70 20 6f 66 20 63 6f 6c 75 6d 6e 20  de up of column 
54e0: 6e 61 6d 65 73 20 61 6e 64 20 76 61 6c 75 65 73  names and values
54f0: 2c 20 6c 69 6b 65 20 3c 74 74 3e 7b 6e 61 6d 65  , like <tt>{name
5500: 31 20 76 61 6c 75 65 31 20 6e 61 6d 65 32 20 76  1 value1 name2 v
5510: 61 6c 75 65 32 7d 3c 2f 74 74 3e 20 69 6e 20 74  alue2}</tt> in t
5520: 68 65 20 6f 72 64 65 72 20 73 70 65 63 69 66 69  he order specifi
5530: 65 64 20 62 79 20 74 68 65 20 63 75 72 73 6f 72  ed by the cursor
5540: 27 73 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e 20  's constructor. 
5550: 42 6c 6f 62 73 20 66 72 6f 6d 20 74 68 65 20 72  Blobs from the r
5560: 65 73 75 6c 74 20 73 65 74 20 61 72 65 20 63 6f  esult set are co
5570: 6e 76 65 72 74 65 64 20 69 6e 74 6f 20 62 61 73  nverted into bas
5580: 65 36 34 20 65 6e 63 6f 64 65 64 20 73 74 72 69  e64 encoded stri
5590: 6e 67 73 2e 0d 0a 0d 0a 3c 74 74 3e 24 63 75 72  ngs.....<tt>$cur
55a0: 73 6f 72 20 67 65 74 73 74 72 69 6e 67 20 3c 69  sor getstring <i
55b0: 3e 69 6e 64 65 78 3c 2f 69 3e 3c 2f 74 74 3e 0d  >index</i></tt>.
55c0: 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74  ...    Returns t
55d0: 68 65 20 3c 74 74 3e 3c 69 3e 69 6e 64 65 78 3c  he <tt><i>index<
55e0: 2f 69 3e 3c 2f 74 74 3e 74 68 20 63 6f 6c 75 6d  /i></tt>th colum
55f0: 6e 20 28 7a 65 72 6f 2d 62 61 73 65 64 29 20 6f  n (zero-based) o
5600: 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 6f  f the current ro
5610: 77 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20  w of the result 
5620: 73 65 74 20 61 73 20 61 20 73 74 72 69 6e 67 2e  set as a string.
5630: 0d 0a 0d 0a 3c 74 74 3e 24 63 75 72 73 6f 72 20  ....<tt>$cursor 
5640: 69 73 6e 75 6c 6c 20 3c 69 3e 69 6e 64 65 78 3c  isnull <i>index<
5650: 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  /i></tt>....    
5660: 52 65 74 75 72 6e 73 20 74 72 75 65 20 77 68 65  Returns true whe
5670: 6e 20 74 68 65 20 3c 74 74 3e 3c 69 3e 69 6e 64  n the <tt><i>ind
5680: 65 78 3c 2f 69 3e 3c 2f 74 74 3e 74 68 20 63 6f  ex</i></tt>th co
5690: 6c 75 6d 6e 20 28 7a 65 72 6f 2d 62 61 73 65 64  lumn (zero-based
56a0: 29 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74  ) of the current
56b0: 20 72 6f 77 20 6f 66 20 74 68 65 20 72 65 73 75   row of the resu
56c0: 6c 74 20 73 65 74 20 69 73 20 61 6e 20 53 51 4c  lt set is an SQL
56d0: 20 4e 55 4c 4c 20 76 61 6c 75 65 2e 0d 0a 0d 0a   NULL value.....
56e0: 3c 74 74 3e 24 63 75 72 73 6f 72 20 6d 6f 76 65  <tt>$cursor move
56f0: 20 3c 69 3e 70 6f 73 3c 2f 69 3e 3c 2f 74 74 3e   <i>pos</i></tt>
5700: 0d 0a 0d 0a 20 20 20 20 52 65 6c 61 74 69 76 65  ....    Relative
5710: 20 6d 6f 76 65 20 6f 66 20 74 68 65 20 63 75 72   move of the cur
5720: 72 65 6e 74 20 72 6f 77 20 69 6e 64 65 78 2e 20  rent row index. 
5730: 4e 65 67 61 74 69 76 65 20 3c 69 3e 70 6f 73 3c  Negative <i>pos<
5740: 2f 69 3e 20 67 6f 65 73 20 62 61 63 6b 77 61 72  /i> goes backwar
5750: 64 2e 0d 0a 0d 0a 3c 74 74 3e 24 63 75 72 73 6f  d.....<tt>$curso
5760: 72 20 6d 6f 76 65 74 6f 20 3c 69 3e 70 6f 73 3c  r moveto <i>pos<
5770: 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  /i></tt>....    
5780: 41 62 73 6f 6c 75 74 65 20 6d 6f 76 65 20 6f 66  Absolute move of
5790: 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 6f 77   the current row
57a0: 20 69 6e 64 65 78 2e 0d 0a 0d 0a 3c 68 34 3e 53   index.....<h4>S
57b0: 70 65 65 63 68 20 52 65 63 6f 67 6e 69 74 69 6f  peech Recognitio
57c0: 6e 3c 2f 68 34 3e 0d 0a 0d 0a 3c 74 74 3e 62 6f  n</h4>....<tt>bo
57d0: 72 67 20 73 70 65 65 63 68 72 65 63 6f 67 6e 69  rg speechrecogni
57e0: 74 69 6f 6e 20 69 6e 74 65 6e 74 20 3c 69 3e 61  tion intent <i>a
57f0: 72 67 73 20 63 6d 64 3c 2f 69 3e 3c 2f 74 74 3e  rgs cmd</i></tt>
5800: 0d 0a 0d 0a 20 20 20 20 55 73 65 20 74 68 65 20  ....    Use the 
5810: 73 70 65 65 63 68 20 72 65 63 6f 67 6e 69 74 69  speech recogniti
5820: 6f 6e 20 73 65 72 76 69 63 65 2e 20 3c 74 74 3e  on service. <tt>
5830: 3c 69 3e 61 72 67 73 3c 2f 69 3e 3c 2f 74 74 3e  <i>args</i></tt>
5840: 20 69 73 20 61 20 70 61 72 61 6d 65 74 65 72 20   is a parameter 
5850: 6c 69 73 74 20 74 6f 20 63 6f 6e 74 72 6f 6c 20  list to control 
5860: 74 68 65 20 73 70 65 65 63 68 20 72 65 63 6f 67  the speech recog
5870: 6e 69 74 69 6f 6e 20 28 3c 61 20 68 72 65 66 3d  nition (<a href=
5880: 22 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f 70 65  "http://develope
5890: 72 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f 72 65  r.android.com/re
58a0: 66 65 72 65 6e 63 65 2f 61 6e 64 72 6f 69 64 2f  ference/android/
58b0: 73 70 65 65 63 68 2f 52 65 63 6f 67 6e 69 7a 65  speech/Recognize
58c0: 72 49 6e 74 65 6e 74 2e 68 74 6d 6c 22 3e 6d 6f  rIntent.html">mo
58d0: 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f  re information</
58e0: 61 3e 29 2e 20 3c 74 74 3e 3c 69 3e 63 6d 64 3c  a>). <tt><i>cmd<
58f0: 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 69 6e 76 6f  /i></tt> is invo
5900: 6b 65 64 20 77 68 65 6e 20 74 68 65 20 73 70 65  ked when the spe
5910: 65 63 68 20 72 65 63 6f 67 6e 69 74 69 6f 6e 20  ech recognition 
5920: 69 73 20 63 6f 6d 70 6c 65 74 65 2e 20 54 68 61  is complete. Tha
5930: 74 20 70 72 6f 63 65 64 75 72 65 20 72 65 63 65  t procedure rece
5940: 69 76 65 73 20 74 68 65 20 70 61 72 61 6d 65 74  ives the paramet
5950: 65 72 73 20 3c 74 74 3e 72 65 74 63 6f 64 65 3c  ers <tt>retcode<
5960: 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e 64 61 74  /tt> and <tt>dat
5970: 61 3c 2f 74 74 3e 20 61 73 20 69 6e 20 74 68 65  a</tt> as in the
5980: 20 63 61 6c 6c 62 61 63 6b 20 66 6f 72 20 3c 74   callback for <t
5990: 74 3e 62 6f 72 67 20 61 63 74 69 76 69 74 79 3c  t>borg activity<
59a0: 2f 74 74 3e 2e 20 3c 74 74 3e 64 61 74 61 3c 2f  /tt>. <tt>data</
59b0: 74 74 3e 20 69 73 20 61 20 6c 69 73 74 20 6f 66  tt> is a list of
59c0: 20 6b 65 79 20 76 61 6c 75 65 20 70 61 69 72 73   key value pairs
59d0: 20 73 75 69 74 65 64 20 66 6f 72 20 3c 74 74 3e   suited for <tt>
59e0: 61 72 72 61 79 20 73 65 74 3c 2f 74 74 3e 20 6f  array set</tt> o
59f0: 72 20 3c 74 74 3e 64 69 63 74 20 63 72 65 61 74  r <tt>dict creat
5a00: 65 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62  e</tt>.....<tt>b
5a10: 6f 72 67 20 73 70 65 65 63 68 72 65 63 6f 67 6e  org speechrecogn
5a20: 69 74 69 6f 6e 20 63 61 6c 6c 62 61 63 6b 20 3c  ition callback <
5a30: 69 3e 63 6d 64 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a  i>cmd</i></tt>..
5a40: 0d 0a 20 20 20 20 45 73 74 61 62 6c 69 73 68 65  ..    Establishe
5a50: 73 20 3c 74 74 3e 3c 69 3e 63 6d 64 3c 2f 69 3e  s <tt><i>cmd</i>
5a60: 3c 2f 74 74 3e 20 61 73 20 67 6c 6f 62 61 6c 20  </tt> as global 
5a70: 63 61 6c 6c 62 61 63 6b 20 70 72 6f 63 65 64 75  callback procedu
5a80: 72 65 20 72 65 63 65 69 76 69 6e 67 20 73 70 65  re receiving spe
5a90: 65 63 68 20 72 65 63 6f 67 6e 69 74 69 6f 6e 20  ech recognition 
5aa0: 65 76 65 6e 74 73 20 61 73 20 64 65 73 63 72 69  events as descri
5ab0: 62 65 64 20 62 79 20 74 68 65 20 52 65 63 6f 67  bed by the Recog
5ac0: 6e 69 74 69 6f 6e 4c 69 73 74 65 6e 65 72 20 69  nitionListener i
5ad0: 6e 74 65 72 66 61 63 65 20 28 3c 61 20 68 72 65  nterface (<a hre
5ae0: 66 3d 22 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f  f="http://develo
5af0: 70 65 72 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f  per.android.com/
5b00: 72 65 66 65 72 65 6e 63 65 2f 61 6e 64 72 6f 69  reference/androi
5b10: 64 2f 73 70 65 65 63 68 2f 52 65 63 6f 67 6e 69  d/speech/Recogni
5b20: 74 69 6f 6e 4c 69 73 74 65 6e 65 72 2e 68 74 6d  tionListener.htm
5b30: 6c 22 3e 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74  l">more informat
5b40: 69 6f 6e 3c 2f 61 3e 29 2e 20 54 68 61 74 20 70  ion</a>). That p
5b50: 72 6f 63 65 64 75 72 65 20 72 65 63 65 69 76 65  rocedure receive
5b60: 73 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73  s the parameters
5b70: 20 3c 74 74 3e 72 65 74 63 6f 64 65 3c 2f 74 74   <tt>retcode</tt
5b80: 3e 20 61 6e 64 20 3c 74 74 3e 64 61 74 61 3c 2f  > and <tt>data</
5b90: 74 74 3e 20 61 73 20 69 6e 20 74 68 65 20 63 61  tt> as in the ca
5ba0: 6c 6c 62 61 63 6b 20 66 6f 72 20 3c 74 74 3e 62  llback for <tt>b
5bb0: 6f 72 67 20 61 63 74 69 76 69 74 79 3c 2f 74 74  org activity</tt
5bc0: 3e 2e 20 3c 74 74 3e 64 61 74 61 3c 2f 74 74 3e  >. <tt>data</tt>
5bd0: 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6b 65   is a list of ke
5be0: 79 20 76 61 6c 75 65 20 70 61 69 72 73 20 73 75  y value pairs su
5bf0: 69 74 65 64 20 66 6f 72 20 3c 74 74 3e 61 72 72  ited for <tt>arr
5c00: 61 79 20 73 65 74 3c 2f 74 74 3e 20 6f 72 20 3c  ay set</tt> or <
5c10: 74 74 3e 64 69 63 74 20 63 72 65 61 74 65 3c 2f  tt>dict create</
5c20: 74 74 3e 2e 20 54 68 65 72 65 20 61 72 65 20 75  tt>. There are u
5c30: 70 20 74 6f 20 74 77 6f 20 73 70 65 63 69 61 6c  p to two special
5c40: 20 6b 65 79 73 20 70 72 65 73 65 6e 74 20 69 6e   keys present in
5c50: 20 64 61 74 61 3a 20 3c 74 74 3e 74 79 70 65 3c   data: <tt>type<
5c60: 2f 74 74 3e 20 67 69 76 69 6e 67 20 74 68 65 20  /tt> giving the 
5c70: 65 76 65 6e 74 20 74 79 70 65 20 28 6f 6e 65 20  event type (one 
5c80: 6f 66 20 3c 74 74 3e 72 65 73 75 6c 74 3c 2f 74  of <tt>result</t
5c90: 74 3e 2c 20 3c 74 74 3e 70 61 72 74 69 61 6c 72  t>, <tt>partialr
5ca0: 65 73 75 6c 74 3c 2f 74 74 3e 2c 20 3c 74 74 3e  esult</tt>, <tt>
5cb0: 72 65 61 64 79 3c 2f 74 74 3e 2c 20 3c 74 74 3e  ready</tt>, <tt>
5cc0: 65 76 65 6e 74 3c 2f 74 74 3e 2e 20 3c 74 74 3e  event</tt>. <tt>
5cd0: 72 6d 73 3c 2f 74 74 3e 2c 20 3c 74 74 3e 65 6e  rms</tt>, <tt>en
5ce0: 64 3c 2f 74 74 3e 2c 20 3c 74 74 3e 62 65 67 69  d</tt>, <tt>begi
5cf0: 6e 3c 2f 74 74 3e 29 20 61 6e 64 20 3c 74 74 3e  n</tt>) and <tt>
5d00: 76 61 6c 75 65 3c 2f 74 74 3e 20 67 69 76 69 6e  value</tt> givin
5d10: 67 20 6e 75 6d 65 72 69 63 20 76 61 6c 75 65 73  g numeric values
5d20: 20 66 6f 72 20 63 65 72 74 61 69 6e 20 65 76 65   for certain eve
5d30: 6e 74 20 74 79 70 65 73 20 28 65 72 72 6f 72 20  nt types (error 
5d40: 63 6f 64 65 20 66 6f 72 20 3c 74 74 3e 65 72 72  code for <tt>err
5d50: 6f 72 3c 2f 74 74 3e 2c 20 61 75 64 69 6f 20 6c  or</tt>, audio l
5d60: 65 76 65 6c 20 66 6f 72 20 3c 74 74 3e 72 6d 73  evel for <tt>rms
5d70: 3c 2f 74 74 3e 29 2e 0d 0a 0d 0a 3c 74 74 3e 62  </tt>).....<tt>b
5d80: 6f 72 67 20 73 70 65 65 63 68 72 65 63 6f 67 6e  org speechrecogn
5d90: 69 74 69 6f 6e 20 73 74 61 72 74 20 3c 69 3e 61  ition start <i>a
5da0: 72 67 73 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a  rgs</i></tt>....
5db0: 20 20 20 20 53 74 61 72 74 73 20 74 68 65 20 73      Starts the s
5dc0: 70 65 65 63 68 20 72 65 63 6f 67 6e 69 74 69 6f  peech recognitio
5dd0: 6e 2e 20 46 6f 72 20 3c 74 74 3e 3c 69 3e 61 72  n. For <tt><i>ar
5de0: 67 73 3c 2f 69 3e 3c 2f 74 74 3e 20 73 65 65 20  gs</i></tt> see 
5df0: 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20  the description 
5e00: 69 6e 20 3c 74 74 3e 62 6f 72 67 20 73 70 65 65  in <tt>borg spee
5e10: 63 68 72 65 63 6f 67 6e 69 74 69 6f 6e 20 69 6e  chrecognition in
5e20: 74 65 6e 74 20 2e 2e 2e 2e 3c 2f 74 74 3e 2e 0d  tent ....</tt>..
5e30: 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 73 70 65 65  ...<tt>borg spee
5e40: 63 68 72 65 63 6f 67 6e 69 74 69 6f 6e 20 63 61  chrecognition ca
5e50: 6e 63 65 6c 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  ncel</tt>....   
5e60: 20 49 6d 6d 65 64 69 61 74 65 6c 79 20 63 61 6e   Immediately can
5e70: 63 65 6c 73 20 74 68 65 20 73 70 65 65 63 68 20  cels the speech 
5e80: 72 65 63 6f 67 6e 69 74 69 6f 6e 2e 20 4e 6f 20  recognition. No 
5e90: 66 75 72 74 68 65 72 20 65 76 65 6e 74 73 20 61  further events a
5ea0: 72 65 20 72 65 70 6f 72 74 65 64 20 74 68 72 6f  re reported thro
5eb0: 75 67 68 20 74 68 65 20 67 6c 6f 62 61 6c 20 63  ugh the global c
5ec0: 61 6c 6c 62 61 63 6b 20 70 72 6f 63 65 64 75 72  allback procedur
5ed0: 65 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 73  e.....<tt>borg s
5ee0: 70 65 65 63 68 72 65 63 6f 67 6e 69 74 69 6f 6e  peechrecognition
5ef0: 20 73 74 6f 70 3c 2f 74 74 3e 0d 0a 0d 0a 20 20   stop</tt>....  
5f00: 20 20 53 74 6f 70 73 20 74 68 65 20 73 70 65 65    Stops the spee
5f10: 63 68 20 72 65 63 6f 67 6e 69 74 69 6f 6e 2e 20  ch recognition. 
5f20: 45 76 65 6e 74 73 20 63 61 6e 20 62 65 20 73 74  Events can be st
5f30: 69 6c 6c 20 72 65 70 6f 72 74 65 64 20 74 68 72  ill reported thr
5f40: 6f 75 67 68 20 74 68 65 20 67 6c 6f 62 61 6c 20  ough the global 
5f50: 63 61 6c 6c 62 61 63 6b 20 70 72 6f 63 65 64 75  callback procedu
5f60: 72 65 2e 0d 0a 0d 0a 3c 68 34 3e 54 65 6c 65 70  re.....<h4>Telep
5f70: 68 6f 6e 65 2d 52 65 6c 61 74 65 64 20 43 6f 6d  hone-Related Com
5f80: 6d 61 6e 64 73 3c 2f 68 34 3e 0d 0a 0d 0a 3c 74  mands</h4>....<t
5f90: 74 3e 62 6f 72 67 20 70 68 6f 6e 65 69 6e 66 6f  t>borg phoneinfo
5fa0: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74  </tt>....    Ret
5fb0: 75 72 6e 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  urns information
5fc0: 20 61 62 6f 75 74 20 74 68 65 20 63 75 72 72 65   about the curre
5fd0: 6e 74 20 73 74 61 74 65 20 6f 66 20 74 68 65 20  nt state of the 
5fe0: 74 65 6c 65 70 68 6f 6e 65 20 61 73 20 61 20 6c  telephone as a l
5ff0: 69 73 74 20 73 75 69 74 65 64 20 66 6f 72 20 3c  ist suited for <
6000: 74 74 3e 61 72 72 61 79 20 73 65 74 3c 2f 74 74  tt>array set</tt
6010: 3e 20 6f 72 20 3c 74 74 3e 64 69 63 74 20 63 72  > or <tt>dict cr
6020: 65 61 74 65 3c 2f 74 74 3e 2e 20 54 68 69 73 20  eate</tt>. This 
6030: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 6f  information is o
6040: 6e 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 77 68  nly available wh
6050: 65 6e 20 74 68 65 20 61 70 70 6c 69 63 61 74 69  en the applicati
6060: 6f 6e 20 6d 61 6e 69 66 65 73 74 20 68 61 73 20  on manifest has 
6070: 74 68 65 20 3c 74 74 3e 61 6e 64 72 6f 69 64 2e  the <tt>android.
6080: 70 65 72 6d 69 73 73 69 6f 6e 2e 52 45 41 44 5f  permission.READ_
6090: 50 48 4f 4e 45 5f 53 54 41 54 45 3c 2f 74 74 3e  PHONE_STATE</tt>
60a0: 20 70 65 72 6d 69 73 73 69 6f 6e 20 28 77 68 69   permission (whi
60b0: 63 68 20 69 73 20 6c 65 66 74 20 6f 75 74 20 69  ch is left out i
60c0: 6e 20 63 75 72 72 65 6e 74 20 5b 41 6e 64 72 6f  n current [Andro
60d0: 57 69 73 68 5d 20 72 65 6c 65 61 73 65 73 29 2e  Wish] releases).
60e0: 20 46 6f 72 20 66 75 72 74 68 65 72 20 69 6e 66   For further inf
60f0: 6f 72 6d 61 74 69 6f 6e 20 73 65 65 20 74 68 65  ormation see the
6100: 20 41 6e 64 72 6f 69 64 20 64 6f 63 75 6d 65 6e   Android documen
6110: 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 63 6c  tation on the cl
6120: 61 73 73 65 73 0d 0a 3c 61 20 68 72 65 66 3d 22  asses..<a href="
6130: 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f 70 65 72  http://developer
6140: 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f 72 65 66  .android.com/ref
6150: 65 72 65 6e 63 65 2f 61 6e 64 72 6f 69 64 2f 74  erence/android/t
6160: 65 6c 65 70 68 6f 6e 79 2f 54 65 6c 65 70 68 6f  elephony/Telepho
6170: 6e 79 4d 61 6e 61 67 65 72 2e 68 74 6d 6c 22 3e  nyManager.html">
6180: 54 65 6c 65 70 68 6f 6e 79 4d 61 6e 61 67 65 72  TelephonyManager
6190: 3c 2f 61 3e 2c 0d 0a 3c 61 20 68 72 65 66 3d 22  </a>,..<a href="
61a0: 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f 70 65 72  http://developer
61b0: 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f 72 65 66  .android.com/ref
61c0: 65 72 65 6e 63 65 2f 61 6e 64 72 6f 69 64 2f 74  erence/android/t
61d0: 65 6c 65 70 68 6f 6e 79 2f 50 68 6f 6e 65 53 74  elephony/PhoneSt
61e0: 61 74 65 4c 69 73 74 65 6e 65 72 2e 68 74 6d 6c  ateListener.html
61f0: 22 3e 50 68 6f 6e 65 53 74 61 74 65 4c 69 73 74  ">PhoneStateList
6200: 65 6e 65 72 3c 2f 61 3e 2c 20 61 6e 64 0d 0a 3c  ener</a>, and..<
6210: 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 64  a href="http://d
6220: 65 76 65 6c 6f 70 65 72 2e 61 6e 64 72 6f 69 64  eveloper.android
6230: 2e 63 6f 6d 2f 72 65 66 65 72 65 6e 63 65 2f 61  .com/reference/a
6240: 6e 64 72 6f 69 64 2f 74 65 6c 65 70 68 6f 6e 79  ndroid/telephony
6250: 2f 53 69 67 6e 61 6c 53 74 72 65 6e 67 74 68 2e  /SignalStrength.
6260: 68 74 6d 6c 22 3e 53 69 67 6e 61 6c 53 74 72 65  html">SignalStre
6270: 6e 67 74 68 3c 2f 61 3e 2e 0d 0a 0d 0a 3c 74 74  ngth</a>.....<tt
6280: 3e 62 6f 72 67 20 73 65 6e 64 73 6d 73 20 70 68  >borg sendsms ph
6290: 6f 6e 65 6e 75 6d 62 65 72 20 6d 73 67 20 3f 3c  onenumber msg ?<
62a0: 69 3e 61 63 74 69 6f 6e 5f 73 65 6e 64 20 61 63  i>action_send ac
62b0: 74 69 6f 6e 5f 64 65 6c 69 76 65 72 65 64 20 73  tion_delivered s
62c0: 6d 73 63 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d  msc</i>?</tt>...
62d0: 0a 20 20 20 20 53 65 6e 64 73 20 61 6e 20 53 4d  .    Sends an SM
62e0: 53 20 74 65 78 74 20 6d 65 73 73 61 67 65 20 3c  S text message <
62f0: 74 74 3e 3c 69 3e 6d 73 67 3c 2f 69 3e 3c 2f 74  tt><i>msg</i></t
6300: 74 3e 20 74 6f 20 3c 74 74 3e 3c 69 3e 70 68 6f  t> to <tt><i>pho
6310: 6e 65 6e 75 6d 62 65 72 3c 2f 69 3e 3c 2f 74 74  nenumber</i></tt
6320: 3e 2e 20 54 68 65 20 6f 70 74 69 6f 6e 61 6c 20  >. The optional 
6330: 61 72 67 75 6d 65 6e 74 73 20 3c 74 74 3e 3c 69  arguments <tt><i
6340: 3e 61 63 74 69 6f 6e 5f 73 65 6e 64 3c 2f 69 3e  >action_send</i>
6350: 3c 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e 3c 69  </tt> and <tt><i
6360: 3e 61 63 74 69 6f 6e 5f 64 65 6c 69 76 65 72 65  >action_delivere
6370: 64 3c 2f 69 3e 3c 2f 74 74 3e 20 61 72 65 20 74  d</i></tt> are t
6380: 68 65 20 61 63 74 69 6f 6e 20 6e 61 6d 65 73 20  he action names 
6390: 6f 66 20 62 72 6f 61 64 63 61 73 74 20 69 6e 74  of broadcast int
63a0: 65 6e 74 73 20 77 68 69 63 68 20 61 72 65 20 67  ents which are g
63b0: 65 6e 65 72 61 74 65 64 20 6f 6e 20 73 74 61 74  enerated on stat
63c0: 65 20 63 68 61 6e 67 65 73 20 72 65 67 61 72 64  e changes regard
63d0: 69 6e 67 20 74 68 65 20 53 4d 53 20 6d 65 73 73  ing the SMS mess
63e0: 61 67 65 20 61 6e 64 20 63 61 6e 20 62 65 20 63  age and can be c
63f0: 61 70 74 75 72 65 64 20 62 79 20 61 20 62 72 6f  aptured by a bro
6400: 61 64 63 61 73 74 20 6c 69 73 74 65 6e 65 72 20  adcast listener 
6410: 63 61 6c 6c 62 61 63 6b 20 28 73 65 65 20 3c 74  callback (see <t
6420: 74 3e 62 6f 72 67 20 62 72 6f 61 64 63 61 73 74  t>borg broadcast
6430: 20 72 65 67 69 73 74 65 72 3c 2f 74 74 3e 20 65   register</tt> e
6440: 74 2e 61 6c 2e 29 2e 20 54 68 65 20 6f 70 74 69  t.al.). The opti
6450: 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 3c 74  onal argument <t
6460: 74 3e 3c 69 3e 73 6d 73 63 3c 2f 69 3e 3c 2f 74  t><i>smsc</i></t
6470: 74 3e 20 69 73 20 74 68 65 20 53 4d 53 20 6d 65  t> is the SMS me
6480: 73 73 61 67 65 20 63 65 6e 74 65 72 2e 20 54 68  ssage center. Th
6490: 65 20 63 6f 6d 6d 61 6e 64 20 72 65 74 75 72 6e  e command return
64a0: 73 20 31 20 6f 6e 20 73 75 63 63 65 73 73 66 75  s 1 on successfu
64b0: 6c 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 73  l start of the s
64c0: 65 6e 64 20 6f 70 65 72 61 74 69 6f 6e 2c 20 30  end operation, 0
64d0: 20 6f 74 68 65 72 77 69 73 65 2e 20 49 74 20 69   otherwise. It i
64e0: 73 20 6f 6e 6c 79 20 61 76 61 69 6c 61 62 6c 65  s only available
64f0: 20 77 68 65 6e 20 74 68 65 20 61 70 70 6c 69 63   when the applic
6500: 61 74 69 6f 6e 20 6d 61 6e 69 66 65 73 74 20 68  ation manifest h
6510: 61 73 20 74 68 65 20 3c 74 74 3e 61 6e 64 72 6f  as the <tt>andro
6520: 69 64 2e 70 65 72 6d 69 73 73 69 6f 6e 2e 53 45  id.permission.SE
6530: 4e 44 5f 53 4d 53 3c 2f 74 74 3e 20 70 65 72 6d  ND_SMS</tt> perm
6540: 69 73 73 69 6f 6e 20 28 77 68 69 63 68 20 69 73  ission (which is
6550: 20 6c 65 66 74 20 6f 75 74 20 69 6e 20 63 75 72   left out in cur
6560: 72 65 6e 74 20 5b 41 6e 64 72 6f 57 69 73 68 5d  rent [AndroWish]
6570: 20 72 65 6c 65 61 73 65 73 29 2e 20 46 6f 72 20   releases). For 
6580: 66 75 72 74 68 65 72 20 69 6e 66 6f 72 6d 61 74  further informat
6590: 69 6f 6e 20 73 65 65 20 74 68 65 20 41 6e 64 72  ion see the Andr
65a0: 6f 69 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  oid documentatio
65b0: 6e 20 6f 6e 20 74 68 65 20 63 6c 61 73 73 0d 0a  n on the class..
65c0: 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f  <a href="http://
65d0: 64 65 76 65 6c 6f 70 65 72 2e 61 6e 64 72 6f 69  developer.androi
65e0: 64 2e 63 6f 6d 2f 72 65 66 65 72 65 6e 63 65 2f  d.com/reference/
65f0: 61 6e 64 72 6f 69 64 2f 74 65 6c 65 70 68 6f 6e  android/telephon
6600: 79 2f 53 6d 73 4d 61 6e 61 67 65 72 2e 68 74 6d  y/SmsManager.htm
6610: 6c 22 3e 53 6d 73 4d 61 6e 61 67 65 72 3c 2f 61  l">SmsManager</a
6620: 3e 2e 0d 0a 0d 0a 3c 68 34 3e 42 72 6f 61 64 63  >.....<h4>Broadc
6630: 61 73 74 3c 2f 68 34 3e 0d 0a 0d 0a 3c 74 74 3e  ast</h4>....<tt>
6640: 62 6f 72 67 20 62 72 6f 61 64 63 61 73 74 20 6c  borg broadcast l
6650: 69 73 74 20 3f 3c 69 3e 61 63 74 69 6f 6e 3c 2f  ist ?<i>action</
6660: 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  i>?</tt>....    
6670: 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f  Returns a list o
6680: 66 20 61 6c 6c 20 72 65 67 69 73 74 65 72 65 64  f all registered
6690: 20 62 72 6f 61 64 63 61 73 74 20 68 61 6e 64 6c   broadcast handl
66a0: 65 72 73 20 69 6e 20 74 68 65 20 69 6e 74 65 72  ers in the inter
66b0: 70 72 65 74 65 72 20 77 68 65 6e 20 3c 74 74 3e  preter when <tt>
66c0: 3c 69 3e 61 63 74 69 6f 6e 3c 2f 69 3e 3c 2f 74  <i>action</i></t
66d0: 74 3e 20 69 73 20 6f 6d 69 74 74 65 64 2e 20 4f  t> is omitted. O
66e0: 74 68 65 72 77 69 73 65 20 69 74 20 72 65 74 75  therwise it retu
66f0: 72 6e 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20  rns the command 
6700: 74 6f 20 62 65 20 69 6e 76 6f 6b 65 64 20 77 68  to be invoked wh
6710: 65 6e 20 74 68 65 20 62 72 6f 61 64 63 61 73 74  en the broadcast
6720: 20 3c 74 74 3e 3c 69 3e 61 63 74 69 6f 6e 3c 2f   <tt><i>action</
6730: 69 3e 3c 2f 74 74 3e 20 69 73 20 72 65 63 65 69  i></tt> is recei
6740: 76 65 64 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67  ved.....<tt>borg
6750: 20 62 72 6f 61 64 63 61 73 74 20 72 65 67 69 73   broadcast regis
6760: 74 65 72 20 3c 69 3e 61 63 74 69 6f 6e 3c 2f 69  ter <i>action</i
6770: 3e 20 3c 69 3e 63 6d 64 3c 2f 69 3e 3c 2f 74 74  > <i>cmd</i></tt
6780: 3e 0d 0a 0d 0a 20 20 20 20 52 65 67 69 73 74 65  >....    Registe
6790: 72 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 3c  rs the command <
67a0: 74 74 3e 3c 69 3e 63 6d 64 3c 2f 69 3e 3c 2f 74  tt><i>cmd</i></t
67b0: 74 3e 20 74 6f 20 62 65 20 69 6e 76 6f 6b 65 64  t> to be invoked
67c0: 20 77 68 65 6e 20 74 68 65 20 62 72 6f 61 64 63   when the broadc
67d0: 61 73 74 20 3c 74 74 3e 3c 69 3e 61 63 74 69 6f  ast <tt><i>actio
67e0: 6e 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 72 65  n</i></tt> is re
67f0: 63 65 69 76 65 64 2e 0d 0a 0d 0a 3c 74 74 3e 62  ceived.....<tt>b
6800: 6f 72 67 20 62 72 6f 61 64 63 61 73 74 20 75 6e  org broadcast un
6810: 72 65 67 69 73 74 65 72 20 3c 69 3e 61 63 74 69  register <i>acti
6820: 6f 6e 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20  on</i></tt>.... 
6830: 20 20 20 55 6e 72 65 67 69 73 74 65 72 73 20 74     Unregisters t
6840: 68 65 20 63 6f 6d 6d 61 6e 64 20 62 6f 75 6e 64  he command bound
6850: 20 74 6f 20 74 68 65 20 72 65 63 65 70 74 69 6f   to the receptio
6860: 6e 20 6f 66 20 74 68 65 20 62 72 6f 61 64 63 61  n of the broadca
6870: 73 74 20 3c 74 74 3e 3c 69 3e 61 63 74 69 6f 6e  st <tt><i>action
6880: 3c 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74  </i></tt>.....<t
6890: 74 3e 62 6f 72 67 20 62 72 6f 61 64 63 61 73 74  t>borg broadcast
68a0: 20 73 65 6e 64 20 3c 69 3e 61 63 74 69 6f 6e 3c   send <i>action<
68b0: 2f 69 3e 20 3f 3c 69 3e 75 72 69 20 74 79 70 65  /i> ?<i>uri type
68c0: 20 63 61 74 65 67 6f 72 69 65 73 20 61 72 67 75   categories argu
68d0: 6d 65 6e 74 73 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d  ments</i>?</tt>.
68e0: 0a 0d 0a 20 20 20 20 53 65 6e 64 73 20 74 68 65  ...    Sends the
68f0: 20 62 72 6f 61 64 63 61 73 74 20 3c 74 74 3e 3c   broadcast <tt><
6900: 69 3e 61 63 74 69 6f 6e 3c 2f 69 3e 3c 2f 74 74  i>action</i></tt
6910: 3e 20 77 69 74 68 20 74 68 65 20 6f 70 74 69 6f  > with the optio
6920: 6e 61 6c 20 70 72 6f 70 65 72 74 69 65 73 2f 61  nal properties/a
6930: 72 67 75 6d 65 6e 74 73 20 3c 74 74 3e 3c 69 3e  rguments <tt><i>
6940: 75 72 69 3c 2f 69 3e 3c 2f 74 74 3e 2c 20 3c 74  uri</i></tt>, <t
6950: 74 3e 3c 69 3e 74 79 70 65 3c 2f 69 3e 3c 2f 74  t><i>type</i></t
6960: 74 3e 2c 20 3c 74 74 3e 3c 69 3e 63 61 74 65 67  t>, <tt><i>categ
6970: 6f 72 69 65 73 3c 2f 69 3e 3c 2f 74 74 3e 2c 20  ories</i></tt>, 
6980: 61 6e 64 20 3c 74 74 3e 3c 69 3e 61 72 67 75 6d  and <tt><i>argum
6990: 65 6e 74 73 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 46  ents</i></tt>. F
69a0: 6f 72 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20  or the optional 
69b0: 69 74 65 6d 73 20 73 65 65 20 74 68 65 20 64 65  items see the de
69c0: 73 63 72 69 70 74 69 6f 6e 20 69 6e 20 3c 74 74  scription in <tt
69d0: 3e 62 6f 72 67 20 61 63 74 69 76 69 74 79 3c 2f  >borg activity</
69e0: 74 74 3e 2e 0d 0a 0d 0a 3c 68 34 3e 4c 6f 63 61  tt>.....<h4>Loca
69f0: 6c 65 3c 2f 68 34 3e 0d 0a 0d 0a 3c 74 74 3e 62  le</h4>....<tt>b
6a00: 6f 72 67 20 6c 6f 63 61 6c 65 20 3f 64 65 66 61  org locale ?defa
6a10: 75 6c 74 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  ult?</tt>....   
6a20: 20 52 65 74 75 72 6e 73 20 69 6e 66 6f 72 6d 61   Returns informa
6a30: 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 63  tion about the c
6a40: 75 72 72 65 6e 74 20 64 65 66 61 75 6c 74 20 6c  urrent default l
6a50: 6f 63 61 6c 65 20 6f 66 20 74 68 65 20 4a 56 4d  ocale of the JVM
6a60: 2e 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20  . The result is 
6a70: 69 6e 20 61 20 66 6f 72 6d 20 73 75 69 74 61 62  in a form suitab
6a80: 6c 65 20 66 6f 72 20 3c 74 74 3e 61 72 72 61 79  le for <tt>array
6a90: 20 73 65 74 3c 2f 74 74 3e 20 6f 72 20 3c 74 74   set</tt> or <tt
6aa0: 3e 64 69 63 74 20 67 65 74 3c 2f 74 74 3e 20 61  >dict get</tt> a
6ab0: 6e 64 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20  nd contains the 
6ac0: 66 69 65 6c 64 73 20 3c 74 74 3e 63 6f 75 6e 74  fields <tt>count
6ad0: 72 79 3c 2f 74 74 3e 2c 20 3c 74 74 3e 64 69 73  ry</tt>, <tt>dis
6ae0: 70 6c 61 79 5f 63 6f 75 6e 74 72 79 3c 2f 74 74  play_country</tt
6af0: 3e 2c 20 3c 74 74 3e 64 69 73 70 6c 61 79 5f 6c  >, <tt>display_l
6b00: 61 6e 67 75 61 67 65 3c 2f 74 74 3e 2c 20 3c 74  anguage</tt>, <t
6b10: 74 3e 64 69 73 70 6c 61 79 5f 6e 61 6d 65 3c 2f  t>display_name</
6b20: 74 74 3e 2c 20 3c 74 74 3e 64 69 73 70 6c 61 79  tt>, <tt>display
6b30: 5f 76 61 72 69 61 6e 74 3c 2f 74 74 3e 2c 20 3c  _variant</tt>, <
6b40: 74 74 3e 69 73 6f 33 5f 63 6f 75 6e 74 72 79 3c  tt>iso3_country<
6b50: 2f 74 74 3e 2c 20 3c 74 74 3e 69 73 6f 33 5f 6c  /tt>, <tt>iso3_l
6b60: 61 6e 67 75 61 67 65 3c 2f 74 74 3e 2c 20 3c 74  anguage</tt>, <t
6b70: 74 3e 6c 61 6e 67 75 61 67 65 3c 2f 74 74 3e 2c  t>language</tt>,
6b80: 20 61 6e 64 20 3c 74 74 3e 76 61 72 69 61 6e 74   and <tt>variant
6b90: 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f  </tt>.....<tt>bo
6ba0: 72 67 20 6c 6f 63 61 6c 65 20 3c 69 3e 6c 61 6e  rg locale <i>lan
6bb0: 67 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  g</i></tt>....  
6bc0: 20 20 52 65 74 75 72 6e 73 20 69 6e 66 6f 72 6d    Returns inform
6bd0: 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20  ation about the 
6be0: 6c 6f 63 61 6c 65 20 69 64 65 6e 74 69 66 69 65  locale identifie
6bf0: 64 20 62 79 20 3c 74 74 3e 3c 69 3e 6c 61 6e 67  d by <tt><i>lang
6c00: 3c 2f 69 3e 3c 2f 74 74 3e 2c 20 77 68 69 63 68  </i></tt>, which
6c10: 20 6d 75 73 74 20 62 65 20 73 70 65 63 69 66 69   must be specifi
6c20: 65 64 20 61 73 20 61 20 74 77 6f 20 6c 65 74 74  ed as a two lett
6c30: 65 72 20 63 6f 64 65 20 77 69 74 68 20 61 6e 20  er code with an 
6c40: 6f 70 74 69 6f 6e 61 6c 20 76 61 72 69 61 6e 74  optional variant
6c50: 20 61 6e 64 20 61 6e 20 6f 70 74 69 6f 6e 61 6c   and an optional
6c60: 20 65 6e 63 6f 64 69 6e 67 20 70 61 72 74 2c 20   encoding part, 
6c70: 65 2e 67 2e 20 3c 74 74 3e 64 65 3c 2f 74 74 3e  e.g. <tt>de</tt>
6c80: 2c 20 3c 74 74 3e 66 72 5f 42 45 3c 2f 74 74 3e  , <tt>fr_BE</tt>
6c90: 2c 20 6f 72 20 3c 74 74 3e 65 6e 5f 47 42 2e 55  , or <tt>en_GB.U
6ca0: 54 46 2d 38 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74  TF-8</tt>.....<t
6cb0: 74 3e 62 6f 72 67 20 6c 6f 63 61 6c 65 20 74 74  t>borg locale tt
6cc0: 73 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65  s</tt>....    Re
6cd0: 74 75 72 6e 73 20 69 6e 66 6f 72 6d 61 74 69 6f  turns informatio
6ce0: 6e 20 61 62 6f 75 74 20 74 68 65 20 6c 6f 63 61  n about the loca
6cf0: 6c 65 20 75 73 65 64 20 66 6f 72 20 74 65 78 74  le used for text
6d00: 2d 74 6f 2d 73 70 65 65 63 68 2e 20 49 66 20 74  -to-speech. If t
6d10: 65 78 74 2d 74 6f 2d 73 70 65 65 63 68 20 66 61  ext-to-speech fa
6d20: 63 69 6c 69 74 69 65 73 20 77 65 72 65 6e 27 74  cilities weren't
6d30: 20 75 73 65 64 20 77 68 65 6e 20 74 68 65 20 63   used when the c
6d40: 6f 6d 6d 61 6e 64 20 69 73 20 69 6e 76 6f 6b 65  ommand is invoke
6d50: 64 2c 20 74 68 65 20 72 65 74 75 72 6e 65 64 20  d, the returned 
6d60: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 69  information is i
6d70: 64 65 6e 74 69 63 61 6c 20 77 69 74 68 20 3c 74  dentical with <t
6d80: 74 3e 62 6f 72 67 20 6c 6f 63 61 6c 65 20 64 65  t>borg locale de
6d90: 66 61 75 6c 74 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c  fault</tt>.....<
6da0: 74 74 3e 62 6f 72 67 20 6c 6f 63 61 6c 65 20 73  tt>borg locale s
6db0: 65 74 20 3c 69 3e 6c 61 6e 67 3c 2f 69 3e 3c 2f  et <i>lang</i></
6dc0: 74 74 3e 0d 0a 0d 0a 20 20 20 20 43 68 61 6e 67  tt>....    Chang
6dd0: 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c  es the current l
6de0: 6f 63 61 6c 65 20 6f 66 20 74 68 65 20 4a 56 4d  ocale of the JVM
6df0: 20 74 6f 20 74 68 65 20 6c 61 6e 67 75 61 67 65   to the language
6e00: 20 63 6f 64 65 20 3c 74 74 3e 3c 69 3e 6c 61 6e   code <tt><i>lan
6e10: 67 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 49 66 20 74  g</i></tt>. If t
6e20: 68 65 20 6c 6f 63 61 6c 65 20 63 68 61 6e 67 65  he locale change
6e30: 20 73 75 63 63 65 65 64 65 64 2c 20 74 68 65 20   succeeded, the 
6e40: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69  environment vari
6e50: 61 62 6c 65 20 3c 74 74 3e 65 6e 76 28 4c 41 4e  able <tt>env(LAN
6e60: 47 29 3c 2f 74 74 3e 20 69 73 20 63 68 61 6e 67  G)</tt> is chang
6e70: 65 64 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e 0d  ed accordingly..
6e80: 0a 0d 0a 3c 68 34 3e 43 61 6d 65 72 61 2d 52 65  ...<h4>Camera-Re
6e90: 6c 61 74 65 64 20 43 6f 6d 6d 61 6e 64 73 3c 2f  lated Commands</
6ea0: 68 34 3e 0d 0a 0d 0a 43 61 6d 65 72 61 20 73 75  h4>....Camera su
6eb0: 70 70 6f 72 74 20 69 73 20 61 76 61 69 6c 61 62  pport is availab
6ec0: 6c 65 20 6f 6e 20 64 65 76 69 63 65 73 20 77 69  le on devices wi
6ed0: 74 68 20 41 6e 64 72 6f 69 64 20 33 2e 30 20 6f  th Android 3.0 o
6ee0: 72 20 6e 65 77 65 72 2e 0d 0a 0d 0a 3c 74 74 3e  r newer.....<tt>
6ef0: 62 6f 72 67 20 63 61 6d 65 72 61 20 63 6c 6f 73  borg camera clos
6f00: 65 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 43 6c  e</tt>....    Cl
6f10: 6f 73 65 20 74 68 65 20 63 61 6d 65 72 61 2e 20  ose the camera. 
6f20: 52 65 74 75 72 6e 73 20 6e 6f 6e 2d 7a 65 72 6f  Returns non-zero
6f30: 20 6f 6e 20 73 75 63 63 65 73 73 2c 20 7a 65 72   on success, zer
6f40: 6f 20 6f 74 68 65 72 77 69 73 65 2c 20 65 2e 67  o otherwise, e.g
6f50: 2e 20 77 68 65 6e 20 74 68 65 20 63 61 6d 65 72  . when the camer
6f60: 61 20 77 61 73 20 61 6c 72 65 61 64 79 20 63 6c  a was already cl
6f70: 6f 73 65 64 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72  osed.....<tt>bor
6f80: 67 20 63 61 6d 65 72 61 20 63 75 72 72 65 6e 74  g camera current
6f90: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74  </tt>....    Ret
6fa0: 75 72 6e 73 20 74 68 65 20 63 75 72 72 65 6e 74  urns the current
6fb0: 6c 79 20 6f 70 65 6e 65 64 20 63 61 6d 65 72 61  ly opened camera
6fc0: 20 6e 75 6d 62 65 72 20 6f 72 20 2d 31 20 77 68   number or -1 wh
6fd0: 65 6e 20 74 68 65 20 63 61 6d 65 72 61 20 69 73  en the camera is
6fe0: 20 6e 6f 74 20 6f 70 65 6e 65 64 2e 20 4f 6e 20   not opened. On 
6ff0: 6d 61 6e 79 20 74 61 62 6c 65 74 73 20 63 61 6d  many tablets cam
7000: 65 72 61 20 30 20 69 73 20 74 68 65 20 62 61 63  era 0 is the bac
7010: 6b 2d 66 61 63 69 6e 67 20 63 61 6d 65 72 61 2c  k-facing camera,
7020: 20 61 6e 64 20 63 61 6d 65 72 61 20 31 20 74 68   and camera 1 th
7030: 65 20 66 72 6f 6e 74 2d 66 61 63 69 6e 67 20 6f  e front-facing o
7040: 6e 65 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20  ne.....<tt>borg 
7050: 63 61 6d 65 72 61 20 67 72 61 79 69 6d 61 67 65  camera grayimage
7060: 20 3f 3c 69 3e 70 68 6f 74 6f 3c 2f 69 3e 3f 3c   ?<i>photo</i>?<
7070: 2f 74 74 3e 3c 62 72 3e 0d 0a 3c 74 74 3e 62 6f  /tt><br>..<tt>bo
7080: 72 67 20 63 61 6d 65 72 61 20 67 72 65 79 69 6d  rg camera greyim
7090: 61 67 65 20 3f 3c 69 3e 70 68 6f 74 6f 3c 2f 69  age ?<i>photo</i
70a0: 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 43  >?</tt>....    C
70b0: 6f 70 69 65 73 20 74 68 65 20 6d 6f 73 74 20 72  opies the most r
70c0: 65 63 65 6e 74 20 63 61 6d 65 72 61 20 70 72 65  ecent camera pre
70d0: 76 69 65 77 20 61 73 20 67 72 65 79 20 69 6d 61  view as grey ima
70e0: 67 65 20 69 6e 74 6f 20 74 68 65 20 70 68 6f 74  ge into the phot
70f0: 6f 20 69 6d 61 67 65 20 69 64 65 6e 74 69 66 69  o image identifi
7100: 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e 70 68 6f  ed by <tt><i>pho
7110: 74 6f 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 52 65 74  to</i></tt>. Ret
7120: 75 72 6e 73 20 6e 6f 6e 2d 7a 65 72 6f 20 6f 6e  urns non-zero on
7130: 20 73 75 63 63 65 73 73 20 6f 72 20 7a 65 72 6f   success or zero
7140: 20 69 66 20 6e 6f 20 64 61 74 61 20 74 72 61 6e   if no data tran
7150: 73 66 65 72 20 68 61 73 20 74 61 6b 65 6e 20 70  sfer has taken p
7160: 6c 61 63 65 2e 20 49 66 20 3c 74 74 3e 3c 69 3e  lace. If <tt><i>
7170: 70 68 6f 74 6f 3c 2f 69 3e 3c 2f 74 74 3e 20 69  photo</i></tt> i
7180: 73 20 6f 6d 69 74 74 65 64 2c 20 61 20 66 6f 75  s omitted, a fou
7190: 72 20 65 6c 65 6d 65 6e 74 20 6c 69 73 74 20 69  r element list i
71a0: 73 20 72 65 74 75 72 6e 65 64 20 77 69 74 68 20  s returned with 
71b0: 74 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e  the first elemen
71c0: 74 20 62 65 69 6e 67 20 74 68 65 20 69 6d 61 67  t being the imag
71d0: 65 20 77 69 64 74 68 2c 20 74 68 65 20 73 65 63  e width, the sec
71e0: 6f 6e 64 20 74 68 65 20 69 6d 61 67 65 20 68 65  ond the image he
71f0: 69 67 68 74 2c 20 74 68 65 20 74 68 69 72 64 20  ight, the third 
7200: 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79  the number of by
7210: 74 65 73 20 70 65 72 20 70 69 78 65 6c 2c 20 61  tes per pixel, a
7220: 6e 64 20 74 68 65 20 6c 61 73 74 20 74 68 65 20  nd the last the 
7230: 69 6d 61 67 65 27 73 20 67 72 65 79 20 76 61 6c  image's grey val
7240: 75 65 73 20 77 69 74 68 20 31 20 62 79 74 65 20  ues with 1 byte 
7250: 70 65 72 20 70 69 78 65 6c 20 61 73 20 61 20 62  per pixel as a b
7260: 79 74 65 20 61 72 72 61 79 2e 20 49 6e 20 74 68  yte array. In th
7270: 69 73 20 63 61 73 65 20 61 6e 20 65 72 72 6f 72  is case an error
7280: 20 69 73 20 69 6e 64 69 63 61 74 65 64 20 62 79   is indicated by
7290: 20 74 68 72 6f 77 69 6e 67 20 61 6e 20 65 78 63   throwing an exc
72a0: 65 70 74 69 6f 6e 2e 20 41 6e 20 65 78 70 65 72  eption. An exper
72b0: 69 6d 65 6e 74 61 6c 20 66 65 61 74 75 72 65 20  imental feature 
72c0: 69 73 20 64 69 72 65 63 74 20 72 65 6e 64 65 72  is direct render
72d0: 69 6e 67 20 69 6e 74 6f 20 61 20 77 69 64 67 65  ing into a widge
72e0: 74 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 20  t. In this case 
72f0: 74 68 65 20 3c 74 74 3e 3c 69 3e 70 68 6f 74 6f  the <tt><i>photo
7300: 3c 2f 69 3e 3c 2f 74 74 3e 20 70 61 72 61 6d 65  </i></tt> parame
7310: 74 65 72 20 6d 75 73 74 20 62 65 20 74 68 65 20  ter must be the 
7320: 70 61 74 68 20 6e 61 6d 65 20 6f 66 20 61 20 54  path name of a T
7330: 6b 20 77 69 6e 64 6f 77 20 77 68 69 63 68 20 73  k window which s
7340: 68 6f 75 6c 64 20 62 65 20 61 20 66 72 61 6d 65  hould be a frame
7350: 20 6f 72 20 74 6f 70 6c 65 76 65 6c 20 77 69 64   or toplevel wid
7360: 67 65 74 2e 20 57 68 65 6e 20 74 68 65 20 63 61  get. When the ca
7370: 6d 65 72 61 20 69 73 20 73 74 61 72 74 65 64 20  mera is started 
7380: 74 68 65 20 62 61 63 6b 67 72 6f 75 6e 64 20 63  the background c
7390: 6f 6c 6f 72 20 6f 66 20 74 68 65 20 77 69 64 67  olor of the widg
73a0: 65 74 20 73 68 6f 75 6c 64 20 62 65 20 73 65 74  et should be set
73b0: 20 74 6f 20 61 6e 20 65 6d 70 74 79 20 73 74 72   to an empty str
73c0: 69 6e 67 20 73 6f 20 74 68 61 74 20 6e 6f 20 64  ing so that no d
73d0: 72 61 77 69 6e 67 20 63 61 6c 6c 73 20 66 72 6f  rawing calls fro
73e0: 6d 20 54 6b 20 61 72 65 20 63 61 72 72 69 65 64  m Tk are carried
73f0: 20 6f 75 74 2e 20 57 68 65 6e 20 74 68 65 20 63   out. When the c
7400: 61 6d 65 72 61 20 69 73 20 73 74 6f 70 70 65 64  amera is stopped
7410: 2c 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 73  , it should be s
7420: 65 74 20 74 6f 20 62 6c 61 63 6b 2e 0d 0a 0d 0a  et to black.....
7430: 3c 74 74 3e 62 6f 72 67 20 63 61 6d 65 72 61 20  <tt>borg camera 
7440: 69 6d 61 67 65 20 3f 3c 69 3e 70 68 6f 74 6f 3c  image ?<i>photo<
7450: 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  /i>?</tt>....   
7460: 20 43 6f 70 69 65 73 20 74 68 65 20 6d 6f 73 74   Copies the most
7470: 20 72 65 63 65 6e 74 20 63 61 6d 65 72 61 20 70   recent camera p
7480: 72 65 76 69 65 77 20 61 73 20 63 6f 6c 6f 72 20  review as color 
7490: 69 6d 61 67 65 20 69 6e 74 6f 20 74 68 65 20 70  image into the p
74a0: 68 6f 74 6f 20 69 6d 61 67 65 20 69 64 65 6e 74  hoto image ident
74b0: 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e  ified by <tt><i>
74c0: 70 68 6f 74 6f 3c 2f 69 3e 3c 2f 74 74 3e 2e 20  photo</i></tt>. 
74d0: 52 65 74 75 72 6e 73 20 6e 6f 6e 2d 7a 65 72 6f  Returns non-zero
74e0: 20 6f 6e 20 73 75 63 63 65 73 73 20 6f 72 20 7a   on success or z
74f0: 65 72 6f 20 69 66 20 6e 6f 20 64 61 74 61 20 74  ero if no data t
7500: 72 61 6e 73 66 65 72 20 68 61 73 20 74 61 6b 65  ransfer has take
7510: 6e 20 70 6c 61 63 65 2e 20 49 66 20 3c 74 74 3e  n place. If <tt>
7520: 3c 69 3e 70 68 6f 74 6f 3c 2f 69 3e 3c 2f 74 74  <i>photo</i></tt
7530: 3e 20 69 73 20 6f 6d 69 74 74 65 64 2c 20 61 20  > is omitted, a 
7540: 66 6f 75 72 20 65 6c 65 6d 65 6e 74 20 6c 69 73  four element lis
7550: 74 20 69 73 20 72 65 74 75 72 6e 65 64 20 77 69  t is returned wi
7560: 74 68 20 74 68 65 20 66 69 72 73 74 20 65 6c 65  th the first ele
7570: 6d 65 6e 74 20 62 65 69 6e 67 20 74 68 65 20 69  ment being the i
7580: 6d 61 67 65 20 77 69 64 74 68 2c 20 74 68 65 20  mage width, the 
7590: 73 65 63 6f 6e 64 20 74 68 65 20 69 6d 61 67 65  second the image
75a0: 20 68 65 69 67 68 74 2c 20 74 68 65 20 74 68 69   height, the thi
75b0: 72 64 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66  rd the number of
75c0: 20 62 79 74 65 73 20 70 65 72 20 70 69 78 65 6c   bytes per pixel
75d0: 2c 20 61 6e 64 20 74 68 65 20 6c 61 73 74 20 74  , and the last t
75e0: 68 65 20 69 6d 61 67 65 27 73 20 52 47 42 20 76  he image's RGB v
75f0: 61 6c 75 65 73 20 77 69 74 68 20 33 20 62 79 74  alues with 3 byt
7600: 65 73 20 70 65 72 20 70 69 78 65 6c 20 69 6e 20  es per pixel in 
7610: 72 65 64 2c 20 67 72 65 65 6e 2c 20 62 6c 75 65  red, green, blue
7620: 20 6f 72 64 65 72 20 61 73 20 61 20 62 79 74 65   order as a byte
7630: 20 61 72 72 61 79 2e 20 49 6e 20 74 68 69 73 20   array. In this 
7640: 63 61 73 65 20 61 6e 20 65 72 72 6f 72 20 69 73  case an error is
7650: 20 69 6e 64 69 63 61 74 65 64 20 62 79 20 74 68   indicated by th
7660: 72 6f 77 69 6e 67 20 61 6e 20 65 78 63 65 70 74  rowing an except
7670: 69 6f 6e 2e 0d 0a 41 6e 20 65 78 70 65 72 69 6d  ion...An experim
7680: 65 6e 74 61 6c 20 66 65 61 74 75 72 65 20 69 73  ental feature is
7690: 20 64 69 72 65 63 74 20 72 65 6e 64 65 72 69 6e   direct renderin
76a0: 67 20 69 6e 74 6f 20 61 20 77 69 64 67 65 74 2e  g into a widget.
76b0: 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 74 68   In this case th
76c0: 65 20 3c 74 74 3e 3c 69 3e 70 68 6f 74 6f 3c 2f  e <tt><i>photo</
76d0: 69 3e 3c 2f 74 74 3e 20 70 61 72 61 6d 65 74 65  i></tt> paramete
76e0: 72 20 6d 75 73 74 20 62 65 20 74 68 65 20 70 61  r must be the pa
76f0: 74 68 20 6e 61 6d 65 20 6f 66 20 61 20 54 6b 20  th name of a Tk 
7700: 77 69 6e 64 6f 77 20 77 68 69 63 68 20 73 68 6f  window which sho
7710: 75 6c 64 20 62 65 20 61 20 66 72 61 6d 65 20 6f  uld be a frame o
7720: 72 20 74 6f 70 6c 65 76 65 6c 20 77 69 64 67 65  r toplevel widge
7730: 74 2e 20 57 68 65 6e 20 74 68 65 20 63 61 6d 65  t. When the came
7740: 72 61 20 69 73 20 73 74 61 72 74 65 64 20 74 68  ra is started th
7750: 65 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c  e background col
7760: 6f 72 20 6f 66 20 74 68 65 20 77 69 64 67 65 74  or of the widget
7770: 20 73 68 6f 75 6c 64 20 62 65 20 73 65 74 20 74   should be set t
7780: 6f 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e  o an empty strin
7790: 67 20 73 6f 20 74 68 61 74 20 6e 6f 20 64 72 61  g so that no dra
77a0: 77 69 6e 67 20 63 61 6c 6c 73 20 66 72 6f 6d 20  wing calls from 
77b0: 54 6b 20 61 72 65 20 63 61 72 72 69 65 64 20 6f  Tk are carried o
77c0: 75 74 2e 20 57 68 65 6e 20 74 68 65 20 63 61 6d  ut. When the cam
77d0: 65 72 61 20 69 73 20 73 74 6f 70 70 65 64 2c 20  era is stopped, 
77e0: 69 74 20 73 68 6f 75 6c 64 20 62 65 20 73 65 74  it should be set
77f0: 20 74 6f 20 62 6c 61 63 6b 2e 0d 0a 0d 0a 3c 74   to black.....<t
7800: 74 3e 62 6f 72 67 20 63 61 6d 65 72 61 20 69 6e  t>borg camera in
7810: 66 6f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52  fo</tt>....    R
7820: 65 74 75 72 6e 73 20 69 6e 66 6f 72 6d 61 74 69  eturns informati
7830: 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 63 75 72  on about the cur
7840: 72 65 6e 74 6c 79 20 6f 70 65 6e 65 64 20 63 61  rently opened ca
7850: 6d 65 72 61 20 61 73 20 61 20 74 77 6f 20 65 6c  mera as a two el
7860: 65 6d 65 6e 74 20 6c 69 73 74 20 6d 61 64 65 20  ement list made 
7870: 75 70 20 6f 66 20 69 6e 74 65 67 65 72 20 6e 75  up of integer nu
7880: 6d 62 65 72 73 2e 20 54 68 65 20 66 69 72 73 74  mbers. The first
7890: 20 69 73 20 74 68 65 20 72 6f 74 61 74 69 6f 6e   is the rotation
78a0: 20 6f 66 20 74 68 65 20 63 61 6d 65 72 61 20 72   of the camera r
78b0: 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 73  elative to the s
78c0: 63 72 65 65 6e 2c 20 74 68 65 20 73 65 63 6f 6e  creen, the secon
78d0: 64 20 61 6e 20 69 6e 64 69 63 61 74 69 6f 6e 20  d an indication 
78e0: 66 6f 72 20 66 72 6f 6e 74 2d 66 61 63 69 6e 67  for front-facing
78f0: 20 28 31 29 20 6f 72 20 62 61 63 6b 2d 66 61 63   (1) or back-fac
7900: 69 6e 67 20 28 30 29 20 76 69 65 77 20 6f 66 20  ing (0) view of 
7910: 74 68 65 20 63 61 6d 65 72 61 20 72 65 6c 61 74  the camera relat
7920: 69 76 65 20 74 6f 20 74 68 65 20 73 63 72 65 65  ive to the scree
7930: 6e 2e 20 49 66 20 6e 6f 20 63 61 6d 65 72 61 20  n. If no camera 
7940: 69 73 20 6f 70 65 6e 65 64 20 74 68 65 20 72 65  is opened the re
7950: 73 75 6c 74 20 69 73 20 61 6e 20 65 6d 70 74 79  sult is an empty
7960: 20 6c 69 73 74 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f   list.....<tt>bo
7970: 72 67 20 63 61 6d 65 72 61 20 6a 70 65 67 3c 2f  rg camera jpeg</
7980: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72  tt>....    Retur
7990: 6e 73 20 61 20 4a 50 45 47 20 69 6d 61 67 65 20  ns a JPEG image 
79a0: 6f 66 20 74 68 65 20 63 61 6d 65 72 61 20 61 73  of the camera as
79b0: 20 61 20 62 79 74 65 20 61 72 72 61 79 20 61 66   a byte array af
79c0: 74 65 72 20 70 72 65 76 69 65 77 20 68 61 73 20  ter preview has 
79d0: 62 65 65 6e 20 73 74 61 72 74 65 64 20 75 73 69  been started usi
79e0: 6e 67 20 3c 74 74 3e 62 6f 72 67 20 63 61 6d 65  ng <tt>borg came
79f0: 72 61 20 73 74 61 72 74 3c 2f 74 74 3e 20 61 6e  ra start</tt> an
7a00: 64 20 4a 50 45 47 20 63 61 70 74 75 72 65 20 68  d JPEG capture h
7a10: 61 73 20 62 65 65 6e 20 69 6e 69 74 69 61 74 65  as been initiate
7a20: 64 20 77 69 74 68 20 3c 74 74 3e 62 6f 72 67 20  d with <tt>borg 
7a30: 63 61 6d 65 72 61 20 74 61 6b 65 6a 70 65 67 3c  camera takejpeg<
7a40: 2f 74 74 3e 2e 20 49 6e 20 63 6f 6e 74 72 61 73  /tt>. In contras
7a50: 74 20 74 6f 20 3c 74 74 3e 62 6f 72 67 20 63 61  t to <tt>borg ca
7a60: 6d 65 72 61 20 69 6d 61 67 65 20 2e 2e 2e 3c 2f  mera image ...</
7a70: 74 74 3e 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64  tt> this command
7a80: 20 63 6f 6e 73 75 6d 65 73 20 74 68 65 20 69 6d   consumes the im
7a90: 61 67 65 2e 20 49 66 20 6e 6f 20 4a 50 45 47 20  age. If no JPEG 
7aa0: 70 69 63 74 75 72 65 20 69 73 20 61 76 61 69 6c  picture is avail
7ab0: 61 62 6c 65 20 77 68 65 6e 20 74 68 65 20 63 6f  able when the co
7ac0: 6d 6d 61 6e 64 20 69 73 20 69 6e 76 6f 6b 65 64  mmand is invoked
7ad0: 2c 20 61 6e 20 65 72 72 6f 72 20 69 73 20 74 68  , an error is th
7ae0: 72 6f 77 6e 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72  rown.....<tt>bor
7af0: 67 20 63 61 6d 65 72 61 20 6d 69 72 72 6f 72 20  g camera mirror 
7b00: 3f 3c 69 3e 78 20 79 3c 2f 69 3e 3f 3c 2f 74 74  ?<i>x y</i>?</tt
7b10: 3e 0d 0a 0d 0a 20 20 20 20 43 6f 6e 74 72 6f 6c  >....    Control
7b20: 73 20 6d 69 72 72 6f 72 69 6e 67 20 6f 66 20 70  s mirroring of p
7b30: 72 65 76 69 65 77 20 69 6d 61 67 65 73 20 77 68  review images wh
7b40: 69 63 68 20 61 72 65 20 6d 69 72 72 6f 72 65 64  ich are mirrored
7b50: 20 61 6c 6f 6e 67 20 74 68 65 20 58 20 61 78 69   along the X axi
7b60: 73 20 77 68 65 6e 20 3c 74 74 3e 3c 69 3e 78 3c  s when <tt><i>x<
7b70: 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 6f 6e 65 20  /i></tt> is one 
7b80: 61 6e 64 20 61 6c 6f 6e 67 20 74 68 65 20 59 20  and along the Y 
7b90: 61 78 69 73 20 77 68 65 6e 20 3c 74 74 3e 3c 69  axis when <tt><i
7ba0: 3e 79 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 6f  >y</i></tt> is o
7bb0: 6e 65 2e 20 3c 74 74 3e 62 6f 72 67 20 63 61 6d  ne. <tt>borg cam
7bc0: 65 72 61 20 6d 69 72 72 6f 72 20 30 20 31 3c 2f  era mirror 0 1</
7bd0: 74 74 3e 20 69 73 20 75 73 65 66 75 6c 20 74 6f  tt> is useful to
7be0: 20 6d 69 72 72 6f 72 20 74 68 65 20 70 72 65 76   mirror the prev
7bf0: 69 65 77 20 69 6d 61 67 65 20 6f 66 20 61 20 66  iew image of a f
7c00: 72 6f 6e 74 2d 66 61 63 69 6e 67 20 63 61 6d 65  ront-facing came
7c10: 72 61 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20  ra.....<tt>borg 
7c20: 63 61 6d 65 72 61 20 6e 75 6d 63 61 6d 65 72 61  camera numcamera
7c30: 73 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65  s</tt>....    Re
7c40: 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72  turns the number
7c50: 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 63 61   of available ca
7c60: 6d 65 72 61 73 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f  meras.....<tt>bo
7c70: 72 67 20 63 61 6d 65 72 61 20 6f 70 65 6e 20 3f  rg camera open ?
7c80: 3c 69 3e 6e 75 6d 3c 2f 69 3e 3f 3c 2f 74 74 3e  <i>num</i>?</tt>
7c90: 0d 0a 0d 0a 20 20 20 20 4f 70 65 6e 73 20 63 61  ....    Opens ca
7ca0: 6d 65 72 61 20 6e 75 6d 62 65 72 20 3c 74 74 3e  mera number <tt>
7cb0: 3c 69 3e 6e 75 6d 3c 2f 69 3e 3c 2f 74 74 3e 20  <i>num</i></tt> 
7cc0: 61 6e 64 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d  and returns non-
7cd0: 7a 65 72 6f 20 6f 6e 20 73 75 63 63 65 73 73 2e  zero on success.
7ce0: 20 4f 6e 6c 79 20 6f 6e 65 20 63 61 6d 65 72 61   Only one camera
7cf0: 20 63 61 6e 20 62 65 20 6f 70 65 6e 65 64 20 61   can be opened a
7d00: 74 20 61 6e 79 20 6f 6e 65 20 74 69 6d 65 2e 20  t any one time. 
7d10: 4f 6e 20 65 72 72 6f 72 20 6f 72 20 77 68 65 6e  On error or when
7d20: 20 61 20 63 61 6d 65 72 61 20 69 73 20 61 6c 72   a camera is alr
7d30: 65 61 64 79 20 6f 70 65 6e 65 64 2c 20 7a 65 72  eady opened, zer
7d40: 6f 20 69 73 20 72 65 74 75 72 6e 65 64 2e 20 57  o is returned. W
7d50: 68 65 6e 20 3c 74 74 3e 3c 69 3e 6e 75 6d 3c 2f  hen <tt><i>num</
7d60: 69 3e 3c 2f 74 74 3e 20 69 73 20 6f 6d 69 74 74  i></tt> is omitt
7d70: 65 64 20 74 68 65 20 66 69 72 73 74 20 63 61 6d  ed the first cam
7d80: 65 72 61 20 69 73 20 6f 70 65 6e 65 64 20 28 75  era is opened (u
7d90: 73 75 61 6c 6c 79 20 74 68 65 20 62 61 63 6b 2d  sually the back-
7da0: 66 61 63 69 6e 67 20 69 66 20 74 77 6f 20 63 61  facing if two ca
7db0: 6d 65 72 61 73 20 61 72 65 20 61 76 61 69 6c 61  meras are availa
7dc0: 62 6c 65 29 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72  ble).....<tt>bor
7dd0: 67 20 63 61 6d 65 72 61 20 6f 72 69 65 6e 74 61  g camera orienta
7de0: 74 69 6f 6e 20 3f 3c 69 3e 64 65 67 72 65 65 73  tion ?<i>degrees
7df0: 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  </i>?</tt>....  
7e00: 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 63 75    Returns the cu
7e10: 72 72 65 6e 74 20 6f 72 69 65 6e 74 61 74 69 6f  rrent orientatio
7e20: 6e 20 6f 66 20 74 68 65 20 70 72 65 76 69 65 77  n of the preview
7e30: 20 69 6d 61 67 65 20 72 65 6c 61 74 69 76 65 20   image relative 
7e40: 74 6f 20 74 68 65 20 73 63 72 65 65 6e 20 6f 72  to the screen or
7e50: 20 63 68 61 6e 67 65 73 20 69 74 20 74 6f 20 3c   changes it to <
7e60: 74 74 3e 3c 69 3e 64 65 67 72 65 65 73 3c 2f 69  tt><i>degrees</i
7e70: 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62  ></tt>.....<tt>b
7e80: 6f 72 67 20 63 61 6d 65 72 61 20 70 61 72 61 6d  org camera param
7e90: 65 74 65 72 73 20 3f 3c 69 3e 6b 65 79 20 76 61  eters ?<i>key va
7ea0: 6c 75 65 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f 74 74  lue ...</i>?</tt
7eb0: 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 73  >....    Returns
7ec0: 20 6f 72 20 63 68 61 6e 67 65 73 20 63 61 6d 65   or changes came
7ed0: 72 61 20 70 61 72 61 6d 65 74 65 72 73 20 67 69  ra parameters gi
7ee0: 76 65 6e 20 61 73 20 6b 65 79 2d 76 61 6c 75 65  ven as key-value
7ef0: 20 70 61 69 72 73 2c 20 65 2e 67 2e 20 3c 74 74   pairs, e.g. <tt
7f00: 3e 70 72 65 76 69 65 77 2d 73 69 7a 65 20 33 32  >preview-size 32
7f10: 30 78 32 34 30 3c 2f 74 74 3e 20 77 69 6c 6c 20  0x240</tt> will 
7f20: 63 68 61 6e 67 65 20 74 68 65 20 73 69 7a 65 20  change the size 
7f30: 6f 66 20 70 72 65 76 69 65 77 20 69 6d 61 67 65  of preview image
7f40: 73 20 74 6f 20 77 69 64 74 68 20 33 32 30 20 61  s to width 320 a
7f50: 6e 64 20 68 65 69 67 68 74 20 32 34 30 2e 20 54  nd height 240. T
7f60: 68 65 20 63 6f 6d 6d 61 6e 64 20 72 65 74 75 72  he command retur
7f70: 6e 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 63  ns the current c
7f80: 61 6d 65 72 61 20 70 61 72 61 6d 65 74 65 72 73  amera parameters
7f90: 20 28 61 66 74 65 72 20 74 68 65 20 70 6f 74 65   (after the pote
7fa0: 6e 74 69 61 6c 20 63 68 61 6e 67 65 2c 20 77 68  ntial change, wh
7fb0: 65 6e 20 6b 65 79 73 20 61 6e 64 20 76 61 6c 75  en keys and valu
7fc0: 65 73 20 77 68 65 72 65 20 67 69 76 65 6e 29 20  es where given) 
7fd0: 61 73 20 61 20 6b 65 79 2d 76 61 6c 75 65 20 6c  as a key-value l
7fe0: 69 73 74 20 77 68 69 63 68 20 63 61 6e 20 62 65  ist which can be
7ff0: 20 70 72 6f 63 65 73 73 65 64 20 77 69 74 68 20   processed with 
8000: 3c 74 74 3e 61 72 72 61 79 20 73 65 74 3c 2f 74  <tt>array set</t
8010: 74 3e 20 6f 72 20 3c 74 74 3e 64 69 63 74 20 67  t> or <tt>dict g
8020: 65 74 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e  et</tt>.....<tt>
8030: 62 6f 72 67 20 63 61 6d 65 72 61 20 73 74 61 72  borg camera star
8040: 74 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 53 74  t</tt>....    St
8050: 61 72 74 73 20 74 68 65 20 63 61 6d 65 72 61 2e  arts the camera.
8060: 20 41 63 71 75 69 72 65 64 20 70 72 65 76 69 65   Acquired previe
8070: 77 20 69 6d 61 67 65 73 20 61 72 65 20 72 65 70  w images are rep
8080: 6f 72 74 65 64 20 62 79 20 74 68 65 20 76 69 72  orted by the vir
8090: 74 75 61 6c 20 65 76 65 6e 74 20 3c 74 74 3e 3c  tual event <tt><
80a0: 3c 49 6d 61 67 65 43 61 70 74 75 72 65 3e 3e 3c  <ImageCapture>><
80b0: 2f 74 74 3e 2e 20 52 65 74 75 72 6e 73 20 6e 6f  /tt>. Returns no
80c0: 6e 2d 7a 65 72 6f 20 6f 6e 20 73 75 63 63 65 73  n-zero on succes
80d0: 73 2c 20 7a 65 72 6f 20 77 68 65 6e 20 74 68 65  s, zero when the
80e0: 20 63 61 6d 65 72 61 20 69 73 20 61 6c 72 65 61   camera is alrea
80f0: 64 79 20 73 74 61 72 74 65 64 20 6f 72 20 61 6e  dy started or an
8100: 20 65 72 72 6f 72 20 68 61 73 20 62 65 65 6e 20   error has been 
8110: 64 65 74 65 63 74 65 64 2e 20 57 68 65 6e 20 74  detected. When t
8120: 68 65 20 61 63 71 75 69 73 69 74 69 6f 6e 20 6f  he acquisition o
8130: 66 20 63 61 6d 65 72 61 20 70 72 65 76 69 65 77  f camera preview
8140: 20 69 6d 61 67 65 73 20 69 73 20 72 75 6e 6e 69   images is runni
8150: 6e 67 20 3c 74 74 3e 62 6f 72 67 20 63 61 6d 65  ng <tt>borg came
8160: 72 61 20 69 6d 61 67 65 3c 2f 74 74 3e 20 6f 72  ra image</tt> or
8170: 20 3c 74 74 3e 62 6f 72 67 20 63 61 6d 65 72 61   <tt>borg camera
8180: 20 67 72 65 79 69 6d 61 67 65 3c 2f 74 74 3e 20   greyimage</tt> 
8190: 6d 75 73 74 20 62 65 20 69 6e 76 6f 6b 65 64 20  must be invoked 
81a0: 77 69 74 68 69 6e 20 35 20 73 65 63 6f 6e 64 73  within 5 seconds
81b0: 2c 20 6f 74 68 65 72 77 69 73 65 20 69 6d 61 67  , otherwise imag
81c0: 65 20 61 63 71 75 69 73 69 74 69 6f 6e 20 69 73  e acquisition is
81d0: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 73   automatically s
81e0: 74 6f 70 70 65 64 20 61 6e 64 20 6e 65 65 64 73  topped and needs
81f0: 20 74 6f 20 62 65 20 72 65 73 74 61 72 74 65 64   to be restarted
8200: 20 77 69 74 68 20 61 6e 6f 74 68 65 72 20 3c 74   with another <t
8210: 74 3e 62 6f 72 67 20 63 61 6d 65 72 61 20 73 74  t>borg camera st
8220: 61 72 74 3c 2f 74 74 3e 20 63 6f 6d 6d 61 6e 64  art</tt> command
8230: 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 63 61  .....<tt>borg ca
8240: 6d 65 72 61 20 73 74 61 74 65 3c 2f 74 74 3e 0d  mera state</tt>.
8250: 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74  ...    Returns t
8260: 68 65 20 63 75 72 72 65 6e 74 20 63 61 6d 65 72  he current camer
8270: 61 20 73 74 61 74 65 20 61 73 20 73 74 72 69 6e  a state as strin
8280: 67 3a 20 3c 74 74 3e 75 6e 6b 6e 6f 77 6e 3c 2f  g: <tt>unknown</
8290: 74 74 3e 2c 20 3c 74 74 3e 63 6c 6f 73 65 64 3c  tt>, <tt>closed<
82a0: 2f 74 74 3e 2c 20 3c 74 74 3e 73 74 6f 70 70 65  /tt>, <tt>stoppe
82b0: 64 3c 2f 74 74 3e 2c 20 6f 72 20 3c 74 74 3e 63  d</tt>, or <tt>c
82c0: 61 70 74 75 72 65 3c 2f 74 74 3e 2e 0d 0a 0d 0a  apture</tt>.....
82d0: 3c 74 74 3e 62 6f 72 67 20 63 61 6d 65 72 61 20  <tt>borg camera 
82e0: 73 74 6f 70 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  stop</tt>....   
82f0: 20 53 74 6f 70 73 20 74 68 65 20 63 61 6d 65 72   Stops the camer
8300: 61 2c 20 69 2e 65 2e 20 6e 6f 20 6d 6f 72 65 20  a, i.e. no more 
8310: 69 6d 61 67 65 73 20 61 72 65 20 61 63 71 75 69  images are acqui
8320: 72 65 64 2e 20 52 65 74 75 72 6e 73 20 6e 6f 6e  red. Returns non
8330: 2d 7a 65 72 6f 20 6f 6e 20 73 75 63 63 65 73 73  -zero on success
8340: 2c 20 7a 65 72 6f 20 77 68 65 6e 20 74 68 65 20  , zero when the 
8350: 63 61 6d 65 72 61 20 69 73 20 61 6c 72 65 61 64  camera is alread
8360: 79 20 73 74 6f 70 70 65 64 20 6f 72 20 61 6e 20  y stopped or an 
8370: 65 72 72 6f 72 20 68 61 73 20 62 65 65 6e 20 64  error has been d
8380: 65 74 65 63 74 65 64 2e 0d 0a 0d 0a 3c 74 74 3e  etected.....<tt>
8390: 62 6f 72 67 20 63 61 6d 65 72 61 20 74 61 6b 65  borg camera take
83a0: 6a 70 65 67 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  jpeg</tt>....   
83b0: 20 52 65 71 75 65 73 74 73 20 74 68 65 20 63 61   Requests the ca
83c0: 6d 65 72 61 20 74 6f 20 74 61 6b 65 20 61 20 4a  mera to take a J
83d0: 50 45 47 20 69 6d 61 67 65 2e 20 49 74 20 69 73  PEG image. It is
83e0: 20 72 65 71 75 69 72 65 64 20 74 68 61 74 20 74   required that t
83f0: 68 65 20 63 61 6d 65 72 61 20 69 73 20 63 61 70  he camera is cap
8400: 74 75 72 69 6e 67 2c 20 69 2e 65 2e 20 3c 74 74  turing, i.e. <tt
8410: 3e 62 6f 72 67 20 63 61 6d 65 72 61 20 73 74 61  >borg camera sta
8420: 72 74 3c 2f 74 74 3e 20 68 61 73 20 62 65 65 6e  rt</tt> has been
8430: 20 63 61 6c 6c 65 64 20 61 6c 72 65 61 64 79 2e   called already.
8440: 20 54 68 65 20 70 6f 69 6e 74 20 69 6e 20 74 69   The point in ti
8450: 6d 65 20 77 68 65 6e 20 61 63 71 75 69 73 69 74  me when acquisit
8460: 69 6f 6e 20 6f 66 20 74 68 65 20 4a 50 45 47 20  ion of the JPEG 
8470: 69 6d 61 67 65 20 73 74 61 72 74 73 20 69 73 20  image starts is 
8480: 69 6e 64 69 63 61 74 65 64 20 62 79 20 74 68 65  indicated by the
8490: 20 76 69 72 74 75 61 6c 20 65 76 65 6e 74 20 3c   virtual event <
84a0: 74 74 3e 3c 3c 53 68 75 74 74 65 72 3e 3e 3c 2f  tt><<Shutter>></
84b0: 74 74 3e 2e 20 57 68 65 6e 20 74 68 65 20 4a 50  tt>. When the JP
84c0: 45 47 20 69 6d 61 67 65 20 69 73 20 72 65 61 64  EG image is read
84d0: 79 20 66 6f 72 20 70 72 6f 63 65 73 73 69 6e 67  y for processing
84e0: 20 74 68 65 20 76 69 72 74 75 61 6c 20 65 76 65   the virtual eve
84f0: 6e 74 20 3c 74 74 3e 3c 3c 50 69 63 74 75 72 65  nt <tt><<Picture
8500: 54 61 6b 65 6e 3e 3e 3c 2f 74 74 3e 20 69 73 20  Taken>></tt> is 
8510: 73 65 6e 74 2e 20 54 68 65 20 63 6f 6d 6d 61 6e  sent. The comman
8520: 64 20 72 65 74 75 72 6e 73 20 61 20 6e 6f 6e 2d  d returns a non-
8530: 7a 65 72 6f 20 76 61 6c 75 65 20 77 68 65 6e 20  zero value when 
8540: 4a 50 45 47 20 63 61 70 74 75 72 65 20 69 73 20  JPEG capture is 
8550: 69 6e 20 70 72 6f 67 72 65 73 73 2c 20 7a 65 72  in progress, zer
8560: 6f 20 6f 6e 20 65 72 72 6f 72 2e 0d 0a 0d 0a 3c  o on error.....<
8570: 68 34 3e 4e 46 43 20 52 65 6c 61 74 65 64 3c 2f  h4>NFC Related</
8580: 68 34 3e 0d 0a 0d 0a 4d 61 6e 79 20 64 65 76 69  h4>....Many devi
8590: 63 65 73 20 68 61 76 65 20 68 61 72 64 77 61 72  ces have hardwar
85a0: 65 20 73 75 70 70 6f 72 74 20 66 6f 72 20 4e 46  e support for NF
85b0: 43 20 28 4e 65 61 72 20 46 69 65 6c 64 20 43 6f  C (Near Field Co
85c0: 6d 6d 75 6e 69 63 61 74 69 6f 6e 29 20 74 61 67  mmunication) tag
85d0: 73 2e 20 49 6e 20 6f 72 64 65 72 20 74 6f 20 64  s. In order to d
85e0: 65 61 6c 20 77 69 74 68 20 73 75 63 68 20 69 74  eal with such it
85f0: 65 6d 73 2c 20 61 20 63 61 6c 6c 62 61 63 6b 20  ems, a callback 
8600: 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 74 68 65 20  command for the 
8610: 62 72 6f 61 64 63 61 73 74 20 3c 74 74 3e 74 6b  broadcast <tt>tk
8620: 2e 74 63 6c 2e 77 69 73 68 2e 6e 66 63 3c 2f 74  .tcl.wish.nfc</t
8630: 74 3e 20 6d 75 73 74 20 62 65 20 72 65 67 69 73  t> must be regis
8640: 74 65 72 65 64 2e 20 54 68 65 20 63 61 6c 6c 62  tered. The callb
8650: 61 63 6b 27 73 20 61 72 67 75 6d 65 6e 74 73 20  ack's arguments 
8660: 63 6f 6e 74 61 69 6e 20 69 6e 66 6f 72 6d 61 74  contain informat
8670: 69 6f 6e 20 6f 6e 20 74 68 65 20 4e 46 43 20 74  ion on the NFC t
8680: 61 67 20 69 6e 20 74 68 65 73 65 20 6b 65 79 73  ag in these keys
8690: 3a 0d 0a 0d 0a 3c 74 74 3e 61 6e 64 72 6f 69 64  :....<tt>android
86a0: 2e 6e 66 63 2e 65 78 74 72 61 2e 49 44 3c 2f 74  .nfc.extra.ID</t
86b0: 74 3e 0d 0a 0d 0a 20 20 20 20 54 68 65 20 74 68  t>....    The th
86c0: 65 20 62 61 73 65 36 34 20 65 6e 63 6f 64 65 64  e base64 encoded
86d0: 20 49 44 20 6f 66 20 74 68 65 20 74 61 67 2e 0d   ID of the tag..
86e0: 0a 0d 0a 3c 74 74 3e 61 6e 64 72 6f 69 64 2e 6e  ...<tt>android.n
86f0: 66 63 2e 65 78 74 72 61 2e 54 41 47 3c 2f 74 74  fc.extra.TAG</tt
8700: 3e 0d 0a 0d 0a 20 20 20 20 54 68 65 20 75 6e 64  >....    The und
8710: 65 72 6c 79 69 6e 67 2f 73 75 70 70 6f 72 74 65  erlying/supporte
8720: 64 20 74 65 63 68 6e 6f 6c 6f 67 69 65 73 20 6f  d technologies o
8730: 66 20 74 68 65 20 74 61 67 20 61 73 20 61 20 73  f the tag as a s
8740: 74 72 69 6e 67 2e 20 43 75 72 72 65 6e 74 6c 79  tring. Currently
8750: 20 6f 6e 6c 79 20 3c 74 74 3e 61 6e 64 72 6f 69   only <tt>androi
8760: 64 2e 6e 66 63 2e 74 65 63 68 2e 4e 64 65 66 3c  d.nfc.tech.Ndef<
8770: 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e 61 6e 64  /tt> and <tt>and
8780: 72 6f 69 64 2e 6e 66 63 2e 74 65 63 68 2e 4e 64  roid.nfc.tech.Nd
8790: 65 66 46 6f 72 6d 61 74 61 62 6c 65 3c 2f 74 74  efFormatable</tt
87a0: 3e 20 61 72 65 20 64 65 74 65 63 74 65 64 20 61  > are detected a
87b0: 6e 64 20 68 61 6e 64 6c 65 64 2e 0d 0a 0d 0a 3c  nd handled.....<
87c0: 74 74 3e 61 6e 64 72 6f 69 64 2e 6e 66 63 2e 65  tt>android.nfc.e
87d0: 78 74 72 61 2e 4e 44 45 46 5f 4d 45 53 53 41 47  xtra.NDEF_MESSAG
87e0: 45 53 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 49  ES</tt>....    I
87f0: 66 20 70 72 65 73 65 6e 74 20 63 6f 6e 74 61 69  f present contai
8800: 6e 73 20 74 68 65 20 4e 44 45 46 20 66 6f 72 6d  ns the NDEF form
8810: 61 74 74 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f  atted informatio
8820: 6e 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 74  n contained in t
8830: 68 65 20 74 61 67 20 65 6e 63 6f 64 65 64 20 69  he tag encoded i
8840: 6e 20 62 61 73 65 36 34 2e 0d 0a 0d 0a 54 68 65  n base64.....The
8850: 20 6c 61 73 74 20 72 65 61 64 20 74 61 67 20 49   last read tag I
8860: 44 20 69 73 20 72 65 6d 65 6d 62 65 72 65 64 20  D is remembered 
8870: 61 6e 64 20 63 61 6e 20 62 65 20 64 65 61 6c 74  and can be dealt
8880: 20 77 69 74 68 20 75 73 69 6e 67 20 74 68 65 73   with using thes
8890: 65 20 3c 74 74 3e 62 6f 72 67 3c 2f 74 74 3e 20  e <tt>borg</tt> 
88a0: 73 75 62 63 6f 6d 6d 61 6e 64 73 3a 0d 0a 0d 0a  subcommands:....
88b0: 3c 74 74 3e 62 6f 72 67 20 6e 64 65 66 72 65 61  <tt>borg ndefrea
88c0: 64 20 3c 69 3e 74 61 67 69 64 3c 2f 69 3e 20 3f  d <i>tagid</i> ?
88d0: 3c 69 3e 63 61 63 68 65 64 3c 2f 69 3e 3f 3c 2f  <i>cached</i>?</
88e0: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72  tt>....    Retur
88f0: 6e 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 6f  ns the current o
8900: 72 20 3c 74 74 3e 3c 69 3e 63 61 63 68 65 64 3c  r <tt><i>cached<
8910: 2f 69 3e 3c 2f 74 74 3e 20 4e 44 45 46 20 66 6f  /i></tt> NDEF fo
8920: 72 6d 61 74 74 65 64 20 69 6e 66 6f 72 6d 61 74  rmatted informat
8930: 69 6f 6e 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e  ion contained in
8940: 20 74 68 65 20 74 61 67 20 67 69 76 65 6e 20 3c   the tag given <
8950: 74 74 3e 3c 69 3e 74 61 67 69 64 3c 2f 69 3e 3c  tt><i>tagid</i><
8960: 2f 74 74 3e 20 61 73 20 62 61 73 65 36 34 20 65  /tt> as base64 e
8970: 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 2e 0d 0a  ncoded string...
8980: 0d 0a 3c 74 74 3e 62 6f 72 67 20 6e 64 65 66 77  ..<tt>borg ndefw
8990: 72 69 74 65 20 3c 69 3e 74 61 67 69 64 20 6e 64  rite <i>tagid nd
89a0: 65 66 6d 73 67 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a  efmsg</i></tt>..
89b0: 0d 0a 20 20 20 20 57 72 69 74 65 73 20 74 68 65  ..    Writes the
89c0: 20 4e 44 45 46 20 66 6f 72 6d 61 74 74 65 64 20   NDEF formatted 
89d0: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 28 6f 6e 65  information (one
89e0: 20 6f 72 20 6d 6f 72 65 20 4e 44 45 46 20 72 65   or more NDEF re
89f0: 63 6f 72 64 73 29 20 69 6e 20 3c 74 74 3e 3c 69  cords) in <tt><i
8a00: 3e 6e 64 65 66 6d 73 67 3c 2f 69 3e 3c 2f 74 74  >ndefmsg</i></tt
8a10: 3e 20 77 68 69 63 68 20 6d 75 73 74 20 62 65 20  > which must be 
8a20: 62 61 73 65 36 34 20 65 6e 63 6f 64 65 64 20 69  base64 encoded i
8a30: 6e 74 6f 20 74 68 65 20 74 61 67 20 67 69 76 65  nto the tag give
8a40: 6e 20 3c 74 74 3e 3c 69 3e 74 61 67 69 64 3c 2f  n <tt><i>tagid</
8a50: 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e  i></tt>.....<tt>
8a60: 62 6f 72 67 20 6e 64 65 66 66 6f 72 6d 61 74 20  borg ndefformat 
8a70: 3c 69 3e 74 61 67 69 64 20 6e 64 65 66 6d 73 67  <i>tagid ndefmsg
8a80: 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  </i></tt>....   
8a90: 20 46 6f 72 6d 61 74 73 20 61 6e 20 65 6d 70 74   Formats an empt
8aa0: 79 20 74 61 67 20 61 6e 64 20 6c 69 6b 65 20 3c  y tag and like <
8ab0: 74 74 3e 62 6f 72 67 20 6e 64 65 66 77 72 69 74  tt>borg ndefwrit
8ac0: 65 3c 2f 74 74 3e 20 77 72 69 74 65 73 20 4e 44  e</tt> writes ND
8ad0: 45 46 20 66 6f 72 6d 61 74 74 65 64 20 69 6e 66  EF formatted inf
8ae0: 6f 72 6d 61 74 69 6f 6e 20 69 6e 74 6f 20 74 68  ormation into th
8af0: 65 20 74 61 67 2e 20 41 6e 20 75 6e 66 6f 72 6d  e tag. An unform
8b00: 61 74 74 65 64 20 74 61 67 20 63 61 6e 20 62 65  atted tag can be
8b10: 20 64 65 74 65 63 74 65 64 20 69 6e 20 74 68 65   detected in the
8b20: 20 3c 74 74 3e 74 6b 2e 74 63 6c 2e 77 69 73 68   <tt>tk.tcl.wish
8b30: 2e 6e 66 63 3c 2f 74 74 3e 20 63 61 6c 6c 62 61  .nfc</tt> callba
8b40: 63 6b 20 70 72 6f 63 65 64 75 72 65 20 62 79 20  ck procedure by 
8b50: 69 6e 73 70 65 63 74 69 6e 67 20 74 68 65 20 74  inspecting the t
8b60: 65 63 68 6e 6f 6c 6f 67 79 20 69 6e 66 6f 72 6d  echnology inform
8b70: 61 74 69 6f 6e 3a 20 54 68 65 20 73 74 72 69 6e  ation: The strin
8b80: 67 20 3c 74 74 3e 61 6e 64 72 6f 69 64 2e 6e 66  g <tt>android.nf
8b90: 63 2e 74 65 63 68 2e 4e 64 65 66 3c 2f 74 74 3e  c.tech.Ndef</tt>
8ba0: 20 69 73 20 61 62 73 65 6e 74 20 62 75 74 20 74   is absent but t
8bb0: 68 65 20 73 74 72 69 6e 67 20 3c 74 74 3e 61 6e  he string <tt>an
8bc0: 64 72 6f 69 64 2e 6e 66 63 2e 74 65 63 68 2e 4e  droid.nfc.tech.N
8bd0: 64 65 66 46 6f 72 6d 61 74 61 62 6c 65 3c 2f 74  defFormatable</t
8be0: 74 3e 20 69 73 20 70 72 65 73 65 6e 74 2e 0d 0a  t> is present...
8bf0: 0d 0a 3c 68 34 3e 4f 53 20 45 6e 76 69 72 6f 6e  ..<h4>OS Environ
8c00: 6d 65 6e 74 3c 2f 68 34 3e 0d 0a 0d 0a 49 6e 66  ment</h4>....Inf
8c10: 6f 72 6d 61 74 69 6f 6e 20 70 72 6f 76 69 64 65  ormation provide
8c20: 64 20 62 79 20 74 68 65 20 3c 61 20 68 72 65 66  d by the <a href
8c30: 3d 22 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f 70  ="http://develop
8c40: 65 72 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f 72  er.android.com/r
8c50: 65 66 65 72 65 6e 63 65 2f 61 6e 64 72 6f 69 64  eference/android
8c60: 2f 6f 73 2f 45 6e 76 69 72 6f 6e 6d 65 6e 74 2e  /os/Environment.
8c70: 68 74 6d 6c 22 3e 61 6e 64 72 6f 69 64 2e 6f 73  html">android.os
8c80: 2e 45 6e 76 69 72 6f 6e 6d 65 6e 74 3c 2f 61 3e  .Environment</a>
8c90: 20 63 6c 61 73 73 2e 0d 0a 0d 0a 3c 74 74 3e 62   class.....<tt>b
8ca0: 6f 72 67 20 6f 73 65 6e 76 69 72 6f 6e 6d 65 6e  org osenvironmen
8cb0: 74 20 64 61 74 61 64 69 72 3c 2f 74 74 3e 0d 0a  t datadir</tt>..
8cc0: 0d 0a 20 20 20 20 52 65 74 75 72 6e 20 74 68 65  ..    Return the
8cd0: 20 75 73 65 72 20 64 61 74 61 20 64 69 72 65 63   user data direc
8ce0: 74 6f 72 79 20 28 73 65 65 20 3c 61 20 68 72 65  tory (see <a hre
8cf0: 66 3d 22 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f  f="http://develo
8d00: 70 65 72 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f  per.android.com/
8d10: 72 65 66 65 72 65 6e 63 65 2f 61 6e 64 72 6f 69  reference/androi
8d20: 64 2f 6f 73 2f 45 6e 76 69 72 6f 6e 6d 65 6e 74  d/os/Environment
8d30: 2e 68 74 6d 6c 23 67 65 74 44 61 74 61 44 69 72  .html#getDataDir
8d40: 65 63 74 6f 72 79 28 29 22 3e 67 65 74 44 61 74  ectory()">getDat
8d50: 61 44 69 72 65 63 74 6f 72 79 3c 2f 61 3e 29 2e  aDirectory</a>).
8d60: 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 6f 73 65  ....<tt>borg ose
8d70: 6e 76 69 72 6f 6e 6d 65 6e 74 20 64 6f 77 6e 6c  nvironment downl
8d80: 6f 61 64 63 61 63 68 65 64 69 72 3c 2f 74 74 3e  oadcachedir</tt>
8d90: 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 20 74  ....    Return t
8da0: 68 65 20 64 6f 77 6e 6c 6f 61 64 2f 63 61 63 68  he download/cach
8db0: 65 20 63 6f 6e 74 65 6e 74 20 64 69 72 65 63 74  e content direct
8dc0: 6f 72 79 20 28 73 65 65 20 3c 61 20 68 72 65 66  ory (see <a href
8dd0: 3d 22 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f 70  ="http://develop
8de0: 65 72 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f 72  er.android.com/r
8df0: 65 66 65 72 65 6e 63 65 2f 61 6e 64 72 6f 69 64  eference/android
8e00: 2f 6f 73 2f 45 6e 76 69 72 6f 6e 6d 65 6e 74 2e  /os/Environment.
8e10: 68 74 6d 6c 23 67 65 74 44 6f 77 6e 6c 6f 61 64  html#getDownload
8e20: 43 61 63 68 65 44 69 72 65 63 74 6f 72 79 28 29  CacheDirectory()
8e30: 22 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 43 61 63  ">getDownloadCac
8e40: 68 65 44 69 72 65 63 74 6f 72 79 3c 2f 61 3e 29  heDirectory</a>)
8e50: 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 6f 73  .....<tt>borg os
8e60: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 65 78 74 65  environment exte
8e70: 72 6e 61 6c 73 74 6f 72 61 67 65 64 69 72 3c 2f  rnalstoragedir</
8e80: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72  tt>....    Retur
8e90: 6e 20 74 68 65 20 70 72 69 6d 61 72 79 20 73 68  n the primary sh
8ea0: 61 72 65 64 2f 65 78 74 65 72 6e 61 6c 20 73 74  ared/external st
8eb0: 6f 72 61 67 65 20 64 69 72 65 63 74 6f 72 79 20  orage directory 
8ec0: 28 73 65 65 20 3c 61 20 68 72 65 66 3d 22 68 74  (see <a href="ht
8ed0: 74 70 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 61  tp://developer.a
8ee0: 6e 64 72 6f 69 64 2e 63 6f 6d 2f 72 65 66 65 72  ndroid.com/refer
8ef0: 65 6e 63 65 2f 61 6e 64 72 6f 69 64 2f 6f 73 2f  ence/android/os/
8f00: 45 6e 76 69 72 6f 6e 6d 65 6e 74 2e 68 74 6d 6c  Environment.html
8f10: 23 67 65 74 45 78 74 65 72 6e 61 6c 53 74 6f 72  #getExternalStor
8f20: 61 67 65 44 69 72 65 63 74 6f 72 79 28 29 22 3e  ageDirectory()">
8f30: 67 65 74 45 78 74 65 72 6e 61 6c 53 74 6f 72 61  getExternalStora
8f40: 67 65 44 69 72 65 63 74 6f 72 79 3c 2f 61 3e 29  geDirectory</a>)
8f50: 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 6f 73  .....<tt>borg os
8f60: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 65 78 74 65  environment exte
8f70: 72 6e 61 6c 73 74 6f 72 61 67 65 70 75 62 6c 69  rnalstoragepubli
8f80: 63 64 69 72 20 3f 3c 69 3e 74 79 70 65 3c 2f 69  cdir ?<i>type</i
8f90: 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 47  >?</tt>....    G
8fa0: 65 74 20 61 20 74 6f 70 2d 6c 65 76 65 6c 20 73  et a top-level s
8fb0: 68 61 72 65 64 2f 65 78 74 65 72 6e 61 6c 20 73  hared/external s
8fc0: 74 6f 72 61 67 65 20 64 69 72 65 63 74 6f 72 79  torage directory
8fd0: 20 66 6f 72 20 70 6c 61 63 69 6e 67 20 66 69 6c   for placing fil
8fe0: 65 73 20 6f 66 20 61 20 70 61 72 74 69 63 75 6c  es of a particul
8ff0: 61 72 20 74 79 70 65 20 28 73 65 65 20 3c 61 20  ar type (see <a 
9000: 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 64 65 76  href="http://dev
9010: 65 6c 6f 70 65 72 2e 61 6e 64 72 6f 69 64 2e 63  eloper.android.c
9020: 6f 6d 2f 72 65 66 65 72 65 6e 63 65 2f 61 6e 64  om/reference/and
9030: 72 6f 69 64 2f 6f 73 2f 45 6e 76 69 72 6f 6e 6d  roid/os/Environm
9040: 65 6e 74 2e 68 74 6d 6c 23 67 65 74 45 78 74 65  ent.html#getExte
9050: 72 6e 61 6c 53 74 6f 72 61 67 65 50 75 62 6c 69  rnalStoragePubli
9060: 63 44 69 72 65 63 74 6f 72 79 28 6a 61 76 61 2e  cDirectory(java.
9070: 6c 61 6e 67 2e 53 74 72 69 6e 67 29 22 3e 67 65  lang.String)">ge
9080: 74 45 78 74 65 72 6e 61 6c 53 74 6f 72 61 67 65  tExternalStorage
9090: 50 75 62 6c 69 63 44 69 72 65 63 74 6f 72 79 3c  PublicDirectory<
90a0: 2f 61 3e 29 2e 20 54 68 65 20 70 61 72 61 6d 65  /a>). The parame
90b0: 74 65 72 20 3c 74 74 3e 3c 69 3e 74 79 70 65 3c  ter <tt><i>type<
90c0: 2f 69 3e 3c 2f 74 74 3e 20 63 61 6e 20 62 65 20  /i></tt> can be 
90d0: 6f 62 74 61 69 6e 65 64 20 62 79 20 75 73 69 6e  obtained by usin
90e0: 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65  g information re
90f0: 74 75 72 6e 65 64 20 66 72 6f 6d 20 3c 74 74 3e  turned from <tt>
9100: 62 6f 72 67 20 71 75 65 72 79 66 69 65 6c 64 73  borg queryfields
9110: 20 61 6e 64 72 6f 69 64 2e 6f 73 2e 45 6e 76 69   android.os.Envi
9120: 72 6f 6e 6d 65 6e 74 3c 2f 74 74 3e 2e 0d 0a 20  ronment</tt>... 
9130: 0d 0a 3c 74 74 3e 62 6f 72 67 20 6f 73 65 6e 76  ..<tt>borg osenv
9140: 69 72 6f 6e 6d 65 6e 74 20 65 78 74 65 72 6e 61  ironment externa
9150: 6c 73 74 6f 72 61 67 65 73 74 61 74 65 3c 2f 74  lstoragestate</t
9160: 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e  t>....    Return
9170: 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 74  s the current st
9180: 61 74 65 20 6f 66 20 74 68 65 20 70 72 69 6d 61  ate of the prima
9190: 72 79 20 73 68 61 72 65 64 2f 65 78 74 65 72 6e  ry shared/extern
91a0: 61 6c 20 73 74 6f 72 61 67 65 20 6d 65 64 69 61  al storage media
91b0: 20 28 73 65 65 20 3c 61 20 68 72 65 66 3d 22 68   (see <a href="h
91c0: 74 74 70 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e  ttp://developer.
91d0: 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f 72 65 66 65  android.com/refe
91e0: 72 65 6e 63 65 2f 61 6e 64 72 6f 69 64 2f 6f 73  rence/android/os
91f0: 2f 45 6e 76 69 72 6f 6e 6d 65 6e 74 2e 68 74 6d  /Environment.htm
9200: 6c 23 67 65 74 45 78 74 65 72 6e 61 6c 53 74 6f  l#getExternalSto
9210: 72 61 67 65 53 74 61 74 65 28 29 22 3e 67 65 74  rageState()">get
9220: 45 78 74 65 72 6e 61 6c 53 74 6f 72 61 67 65 53  ExternalStorageS
9230: 74 61 74 65 3c 2f 61 3e 29 2e 0d 0a 0d 0a 3c 74  tate</a>).....<t
9240: 74 3e 62 6f 72 67 20 6f 73 65 6e 76 69 72 6f 6e  t>borg osenviron
9250: 6d 65 6e 74 20 69 73 65 78 74 65 72 6e 61 6c 73  ment isexternals
9260: 74 6f 72 61 67 65 65 6d 75 6c 61 74 65 64 3c 2f  torageemulated</
9270: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72  tt>....    Retur
9280: 6e 73 20 77 68 65 74 68 65 72 20 74 68 65 20 70  ns whether the p
9290: 72 69 6d 61 72 79 20 73 68 61 72 65 64 2f 65 78  rimary shared/ex
92a0: 74 65 72 6e 61 6c 20 73 74 6f 72 61 67 65 20 6d  ternal storage m
92b0: 65 64 69 61 20 69 73 20 65 6d 75 6c 61 74 65 64  edia is emulated
92c0: 20 28 73 65 65 20 3c 61 20 68 72 65 66 3d 22 68   (see <a href="h
92d0: 74 74 70 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e  ttp://developer.
92e0: 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f 72 65 66 65  android.com/refe
92f0: 72 65 6e 63 65 2f 61 6e 64 72 6f 69 64 2f 6f 73  rence/android/os
9300: 2f 45 6e 76 69 72 6f 6e 6d 65 6e 74 2e 68 74 6d  /Environment.htm
9310: 6c 23 69 73 45 78 74 65 72 6e 61 6c 53 74 6f 72  l#isExternalStor
9320: 61 67 65 45 6d 75 6c 61 74 65 64 28 29 22 3e 69  ageEmulated()">i
9330: 73 45 78 74 65 72 6e 61 6c 53 74 6f 72 61 67 65  sExternalStorage
9340: 45 6d 75 6c 61 74 65 64 3c 2f 61 3e 29 2e 0d 0a  Emulated</a>)...
9350: 0d 0a 3c 74 74 3e 62 6f 72 67 20 6f 73 65 6e 76  ..<tt>borg osenv
9360: 69 72 6f 6e 6d 65 6e 74 20 69 73 65 78 74 65 72  ironment isexter
9370: 6e 61 6c 73 74 6f 72 61 67 65 72 65 6d 6f 76 61  nalstorageremova
9380: 62 6c 65 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  ble</tt>....    
9390: 52 65 74 75 72 6e 73 20 77 68 65 74 68 65 72 20  Returns whether 
93a0: 74 68 65 20 70 72 69 6d 61 72 79 20 73 68 61 72  the primary shar
93b0: 65 64 2f 65 78 74 65 72 6e 61 6c 20 73 74 6f 72  ed/external stor
93c0: 61 67 65 20 6d 65 64 69 61 20 69 73 20 70 68 79  age media is phy
93d0: 73 69 63 61 6c 6c 79 20 72 65 6d 6f 76 61 62 6c  sically removabl
93e0: 65 20 28 73 65 65 20 3c 61 20 68 72 65 66 3d 22  e (see <a href="
93f0: 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f 70 65 72  http://developer
9400: 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f 72 65 66  .android.com/ref
9410: 65 72 65 6e 63 65 2f 61 6e 64 72 6f 69 64 2f 6f  erence/android/o
9420: 73 2f 45 6e 76 69 72 6f 6e 6d 65 6e 74 2e 68 74  s/Environment.ht
9430: 6d 6c 23 69 73 45 78 74 65 72 6e 61 6c 53 74 6f  ml#isExternalSto
9440: 72 61 67 65 52 65 6d 6f 76 61 62 6c 65 28 29 22  rageRemovable()"
9450: 3e 69 73 45 78 74 65 72 6e 61 6c 53 74 6f 72 61  >isExternalStora
9460: 67 65 52 65 6d 6f 76 61 62 6c 65 3c 2f 61 3e 29  geRemovable</a>)
9470: 2e 0d 0a 20 0d 0a 3c 74 74 3e 62 6f 72 67 20 6f  ... ..<tt>borg o
9480: 73 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 72 6f 6f  senvironment roo
9490: 74 64 69 72 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  tdir</tt>....   
94a0: 20 52 65 74 75 72 6e 20 72 6f 6f 74 20 6f 66 20   Return root of 
94b0: 74 68 65 20 22 73 79 73 74 65 6d 22 20 70 61 72  the "system" par
94c0: 74 69 74 69 6f 6e 20 68 6f 6c 64 69 6e 67 20 74  tition holding t
94d0: 68 65 20 63 6f 72 65 20 41 6e 64 72 6f 69 64 20  he core Android 
94e0: 4f 53 20 28 73 65 65 20 3c 61 20 68 72 65 66 3d  OS (see <a href=
94f0: 22 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f 70 65  "http://develope
9500: 72 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f 72 65  r.android.com/re
9510: 66 65 72 65 6e 63 65 2f 61 6e 64 72 6f 69 64 2f  ference/android/
9520: 6f 73 2f 45 6e 76 69 72 6f 6e 6d 65 6e 74 2e 68  os/Environment.h
9530: 74 6d 6c 23 67 65 74 52 6f 6f 74 44 69 72 65 63  tml#getRootDirec
9540: 74 6f 72 79 28 29 22 3e 67 65 74 52 6f 6f 74 44  tory()">getRootD
9550: 69 72 65 63 74 6f 72 79 3c 2f 61 3e 29 2e 0d 0a  irectory</a>)...
9560: 0d 0a 3c 68 34 3e 53 68 61 72 65 64 20 50 72 65  ..<h4>Shared Pre
9570: 66 65 72 65 6e 63 65 73 3c 2f 68 34 3e 0d 0a 0d  ferences</h4>...
9580: 0a 41 6e 20 69 6e 74 65 72 66 61 63 65 20 74 6f  .An interface to
9590: 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a   <a href="https:
95a0: 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 61 6e 64 72  //developer.andr
95b0: 6f 69 64 2e 63 6f 6d 2f 72 65 66 65 72 65 6e 63  oid.com/referenc
95c0: 65 2f 61 6e 64 72 6f 69 64 2f 63 6f 6e 74 65 6e  e/android/conten
95d0: 74 2f 53 68 61 72 65 64 50 72 65 66 65 72 65 6e  t/SharedPreferen
95e0: 63 65 73 2e 68 74 6d 6c 22 3e 61 6e 64 72 6f 69  ces.html">androi
95f0: 64 2e 63 6f 6e 74 65 6e 74 2e 53 68 61 72 65 64  d.content.Shared
9600: 50 72 65 66 65 72 65 6e 63 65 73 3c 2f 61 3e 20  Preferences</a> 
9610: 69 73 20 70 72 6f 76 69 64 65 64 20 75 73 69 6e  is provided usin
9620: 67 20 74 68 65 20 3c 74 74 3e 62 6f 72 67 20 73  g the <tt>borg s
9630: 68 61 72 65 64 70 72 65 66 65 72 65 6e 63 65 73  haredpreferences
9640: 3c 2f 74 74 3e 20 73 75 62 63 6f 6d 6d 61 6e 64  </tt> subcommand
9650: 2e 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 74 6f  . This allows to
9660: 20 6c 6f 61 64 2f 73 74 6f 72 65 20 74 79 70 65   load/store type
9670: 64 20 76 61 6c 75 65 73 20 6f 66 20 61 6e 20 61  d values of an a
9680: 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 20 61 20  pplication in a 
9690: 6b 65 79 2d 76 61 6c 75 65 20 73 74 6f 72 65 20  key-value store 
96a0: 77 68 69 63 68 20 64 6f 65 73 20 6e 6f 74 20 72  which does not r
96b0: 65 71 75 69 72 65 20 65 78 74 72 61 20 66 69 6c  equire extra fil
96c0: 65 20 70 65 72 6d 69 73 73 69 6f 6e 73 2e 0d 0a  e permissions...
96d0: 0d 0a 3c 74 74 3e 62 6f 72 67 20 73 68 61 72 65  ..<tt>borg share
96e0: 64 70 72 65 66 65 72 65 6e 63 65 73 20 3c 69 3e  dpreferences <i>
96f0: 66 69 6c 65 3c 2f 69 3e 20 67 65 74 62 6f 6f 6c  file</i> getbool
9700: 65 61 6e 20 3c 69 3e 6b 65 79 20 64 65 66 61 75  ean <i>key defau
9710: 6c 74 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20  lt</i></tt>.... 
9720: 20 20 20 52 65 74 75 72 6e 20 61 20 62 6f 6f 6c     Return a bool
9730: 65 61 6e 20 76 61 6c 75 65 20 28 75 73 69 6e 67  ean value (using
9740: 20 3c 74 74 3e 3c 69 3e 64 65 66 61 75 6c 74 3c   <tt><i>default<
9750: 2f 69 3e 3c 2f 74 74 3e 20 69 66 20 6e 6f 74 20  /i></tt> if not 
9760: 70 72 65 73 65 6e 74 29 20 66 72 6f 6d 20 74 68  present) from th
9770: 65 20 73 68 61 72 65 64 20 70 72 65 66 65 72 65  e shared prefere
9780: 6e 63 65 20 66 69 6c 65 20 69 64 65 6e 74 69 66  nce file identif
9790: 69 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e 66 69  ied by <tt><i>fi
97a0: 6c 65 3c 2f 69 3e 3c 2f 74 74 3e 20 73 74 6f 72  le</i></tt> stor
97b0: 65 64 20 75 6e 64 65 72 20 74 68 65 20 6e 61 6d  ed under the nam
97c0: 65 20 3c 74 74 3e 3c 69 3e 6b 65 79 3c 2f 69 3e  e <tt><i>key</i>
97d0: 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f  </tt>.....<tt>bo
97e0: 72 67 20 73 68 61 72 65 64 70 72 65 66 65 72 65  rg sharedprefere
97f0: 6e 63 65 73 20 3c 69 3e 66 69 6c 65 3c 2f 69 3e  nces <i>file</i>
9800: 20 67 65 74 66 6c 6f 61 74 20 3c 69 3e 6b 65 79   getfloat <i>key
9810: 20 64 65 66 61 75 6c 74 3c 2f 69 3e 3c 2f 74 74   default</i></tt
9820: 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 20  >....    Return 
9830: 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74  a floating point
9840: 20 76 61 6c 75 65 20 28 75 73 69 6e 67 20 3c 74   value (using <t
9850: 74 3e 3c 69 3e 64 65 66 61 75 6c 74 3c 2f 69 3e  t><i>default</i>
9860: 3c 2f 74 74 3e 20 69 66 20 6e 6f 74 20 70 72 65  </tt> if not pre
9870: 73 65 6e 74 29 20 66 72 6f 6d 20 74 68 65 20 73  sent) from the s
9880: 68 61 72 65 64 20 70 72 65 66 65 72 65 6e 63 65  hared preference
9890: 20 66 69 6c 65 20 69 64 65 6e 74 69 66 69 65 64   file identified
98a0: 20 62 79 20 3c 74 74 3e 3c 69 3e 66 69 6c 65 3c   by <tt><i>file<
98b0: 2f 69 3e 3c 2f 74 74 3e 20 73 74 6f 72 65 64 20  /i></tt> stored 
98c0: 75 6e 64 65 72 20 74 68 65 20 6e 61 6d 65 20 3c  under the name <
98d0: 74 74 3e 3c 69 3e 6b 65 79 3c 2f 69 3e 3c 2f 74  tt><i>key</i></t
98e0: 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20  t>.....<tt>borg 
98f0: 73 68 61 72 65 64 70 72 65 66 65 72 65 6e 63 65  sharedpreference
9900: 73 20 3c 69 3e 66 69 6c 65 3c 2f 69 3e 20 67 65  s <i>file</i> ge
9910: 74 69 6e 74 20 3c 69 3e 6b 65 79 20 64 65 66 61  tint <i>key defa
9920: 75 6c 74 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a  ult</i></tt>....
9930: 20 20 20 20 52 65 74 75 72 6e 20 61 6e 20 69 6e      Return an in
9940: 74 65 67 65 72 20 76 61 6c 75 65 20 28 75 73 69  teger value (usi
9950: 6e 67 20 3c 74 74 3e 3c 69 3e 64 65 66 61 75 6c  ng <tt><i>defaul
9960: 74 3c 2f 69 3e 3c 2f 74 74 3e 20 69 66 20 6e 6f  t</i></tt> if no
9970: 74 20 70 72 65 73 65 6e 74 29 20 66 72 6f 6d 20  t present) from 
9980: 74 68 65 20 73 68 61 72 65 64 20 70 72 65 66 65  the shared prefe
9990: 72 65 6e 63 65 20 66 69 6c 65 20 69 64 65 6e 74  rence file ident
99a0: 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e  ified by <tt><i>
99b0: 66 69 6c 65 3c 2f 69 3e 3c 2f 74 74 3e 20 73 74  file</i></tt> st
99c0: 6f 72 65 64 20 75 6e 64 65 72 20 74 68 65 20 6e  ored under the n
99d0: 61 6d 65 20 3c 74 74 3e 3c 69 3e 6b 65 79 3c 2f  ame <tt><i>key</
99e0: 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e  i></tt>.....<tt>
99f0: 62 6f 72 67 20 73 68 61 72 65 64 70 72 65 66 65  borg sharedprefe
9a00: 72 65 6e 63 65 73 20 3c 69 3e 66 69 6c 65 3c 2f  rences <i>file</
9a10: 69 3e 20 67 65 74 6c 6f 6e 67 20 3c 69 3e 6b 65  i> getlong <i>ke
9a20: 79 20 64 65 66 61 75 6c 74 3c 2f 69 3e 3c 2f 74  y default</i></t
9a30: 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e  t>....    Return
9a40: 20 61 20 36 34 20 62 69 74 20 69 6e 74 65 67 65   a 64 bit intege
9a50: 72 20 76 61 6c 75 65 20 28 75 73 69 6e 67 20 3c  r value (using <
9a60: 74 74 3e 3c 69 3e 64 65 66 61 75 6c 74 3c 2f 69  tt><i>default</i
9a70: 3e 3c 2f 74 74 3e 20 69 66 20 6e 6f 74 20 70 72  ></tt> if not pr
9a80: 65 73 65 6e 74 29 20 66 72 6f 6d 20 74 68 65 20  esent) from the 
9a90: 73 68 61 72 65 64 20 70 72 65 66 65 72 65 6e 63  shared preferenc
9aa0: 65 20 66 69 6c 65 20 69 64 65 6e 74 69 66 69 65  e file identifie
9ab0: 64 20 62 79 20 3c 74 74 3e 3c 69 3e 66 69 6c 65  d by <tt><i>file
9ac0: 3c 2f 69 3e 3c 2f 74 74 3e 20 73 74 6f 72 65 64  </i></tt> stored
9ad0: 20 75 6e 64 65 72 20 74 68 65 20 6e 61 6d 65 20   under the name 
9ae0: 3c 74 74 3e 3c 69 3e 6b 65 79 3c 2f 69 3e 3c 2f  <tt><i>key</i></
9af0: 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67  tt>.....<tt>borg
9b00: 20 73 68 61 72 65 64 70 72 65 66 65 72 65 6e 63   sharedpreferenc
9b10: 65 73 20 3c 69 3e 66 69 6c 65 3c 2f 69 3e 20 67  es <i>file</i> g
9b20: 65 74 73 74 72 69 6e 67 20 3c 69 3e 6b 65 79 20  etstring <i>key 
9b30: 64 65 66 61 75 6c 74 3c 2f 69 3e 3c 2f 74 74 3e  default</i></tt>
9b40: 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 20 61  ....    Return a
9b50: 20 73 74 72 69 6e 67 20 76 61 6c 75 65 20 28 75   string value (u
9b60: 73 69 6e 67 20 3c 74 74 3e 3c 69 3e 64 65 66 61  sing <tt><i>defa
9b70: 75 6c 74 3c 2f 69 3e 3c 2f 74 74 3e 20 69 66 20  ult</i></tt> if 
9b80: 6e 6f 74 20 70 72 65 73 65 6e 74 29 20 66 72 6f  not present) fro
9b90: 6d 20 74 68 65 20 73 68 61 72 65 64 20 70 72 65  m the shared pre
9ba0: 66 65 72 65 6e 63 65 20 66 69 6c 65 20 69 64 65  ference file ide
9bb0: 6e 74 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c  ntified by <tt><
9bc0: 69 3e 66 69 6c 65 3c 2f 69 3e 3c 2f 74 74 3e 20  i>file</i></tt> 
9bd0: 73 74 6f 72 65 64 20 75 6e 64 65 72 20 74 68 65  stored under the
9be0: 20 6e 61 6d 65 20 3c 74 74 3e 3c 69 3e 6b 65 79   name <tt><i>key
9bf0: 3c 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74  </i></tt>.....<t
9c00: 74 3e 62 6f 72 67 20 73 68 61 72 65 64 70 72 65  t>borg sharedpre
9c10: 66 65 72 65 6e 63 65 73 20 3c 69 3e 66 69 6c 65  ferences <i>file
9c20: 3c 2f 69 3e 20 73 65 74 62 6f 6f 6c 65 61 6e 20  </i> setboolean 
9c30: 3c 69 3e 6b 65 79 20 76 61 6c 75 65 3c 2f 69 3e  <i>key value</i>
9c40: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 53 74 6f  </tt>....    Sto
9c50: 72 65 20 74 68 65 20 62 6f 6f 6c 65 61 6e 20 3c  re the boolean <
9c60: 74 74 3e 3c 69 3e 76 61 6c 75 65 3c 2f 69 3e 3c  tt><i>value</i><
9c70: 2f 74 74 3e 20 69 6e 74 6f 20 74 68 65 20 73 68  /tt> into the sh
9c80: 61 72 65 64 20 70 72 65 66 65 72 65 6e 63 65 20  ared preference 
9c90: 66 69 6c 65 20 69 64 65 6e 74 69 66 69 65 64 20  file identified 
9ca0: 62 79 20 3c 74 74 3e 3c 69 3e 66 69 6c 65 3c 2f  by <tt><i>file</
9cb0: 69 3e 3c 2f 74 74 3e 20 75 6e 64 65 72 20 74 68  i></tt> under th
9cc0: 65 20 6e 61 6d 65 20 3c 74 74 3e 3c 69 3e 6b 65  e name <tt><i>ke
9cd0: 79 3c 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c  y</i></tt>.....<
9ce0: 74 74 3e 62 6f 72 67 20 73 68 61 72 65 64 70 72  tt>borg sharedpr
9cf0: 65 66 65 72 65 6e 63 65 73 20 3c 69 3e 66 69 6c  eferences <i>fil
9d00: 65 3c 2f 69 3e 20 73 65 74 66 6c 6f 61 74 20 3c  e</i> setfloat <
9d10: 69 3e 6b 65 79 20 76 61 6c 75 65 3c 2f 69 3e 3c  i>key value</i><
9d20: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 53 74 6f 72  /tt>....    Stor
9d30: 65 20 74 68 65 20 66 6c 6f 61 74 69 6e 67 20 70  e the floating p
9d40: 6f 69 6e 74 20 3c 74 74 3e 3c 69 3e 76 61 6c 75  oint <tt><i>valu
9d50: 65 3c 2f 69 3e 3c 2f 74 74 3e 20 69 6e 74 6f 20  e</i></tt> into 
9d60: 74 68 65 20 73 68 61 72 65 64 20 70 72 65 66 65  the shared prefe
9d70: 72 65 6e 63 65 20 66 69 6c 65 20 69 64 65 6e 74  rence file ident
9d80: 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e  ified by <tt><i>
9d90: 66 69 6c 65 3c 2f 69 3e 3c 2f 74 74 3e 20 75 6e  file</i></tt> un
9da0: 64 65 72 20 74 68 65 20 6e 61 6d 65 20 3c 74 74  der the name <tt
9db0: 3e 3c 69 3e 6b 65 79 3c 2f 69 3e 3c 2f 74 74 3e  ><i>key</i></tt>
9dc0: 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 73 68  .....<tt>borg sh
9dd0: 61 72 65 64 70 72 65 66 65 72 65 6e 63 65 73 20  aredpreferences 
9de0: 3c 69 3e 66 69 6c 65 3c 2f 69 3e 20 73 65 74 69  <i>file</i> seti
9df0: 6e 74 20 3c 69 3e 6b 65 79 20 76 61 6c 75 65 3c  nt <i>key value<
9e00: 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  /i></tt>....    
9e10: 53 74 6f 72 65 20 74 68 65 20 69 6e 74 65 67 65  Store the intege
9e20: 72 20 3c 74 74 3e 3c 69 3e 76 61 6c 75 65 3c 2f  r <tt><i>value</
9e30: 69 3e 3c 2f 74 74 3e 20 69 6e 74 6f 20 74 68 65  i></tt> into the
9e40: 20 73 68 61 72 65 64 20 70 72 65 66 65 72 65 6e   shared preferen
9e50: 63 65 20 66 69 6c 65 20 69 64 65 6e 74 69 66 69  ce file identifi
9e60: 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e 66 69 6c  ed by <tt><i>fil
9e70: 65 3c 2f 69 3e 3c 2f 74 74 3e 20 75 6e 64 65 72  e</i></tt> under
9e80: 20 74 68 65 20 6e 61 6d 65 20 3c 74 74 3e 3c 69   the name <tt><i
9e90: 3e 6b 65 79 3c 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a  >key</i></tt>...
9ea0: 0d 0a 3c 74 74 3e 62 6f 72 67 20 73 68 61 72 65  ..<tt>borg share
9eb0: 64 70 72 65 66 65 72 65 6e 63 65 73 20 3c 69 3e  dpreferences <i>
9ec0: 66 69 6c 65 3c 2f 69 3e 20 73 65 74 6c 6f 6e 67  file</i> setlong
9ed0: 20 3c 69 3e 6b 65 79 20 76 61 6c 75 65 3c 2f 69   <i>key value</i
9ee0: 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 53 74  ></tt>....    St
9ef0: 6f 72 65 20 74 68 65 20 36 34 20 62 69 74 20 69  ore the 64 bit i
9f00: 6e 74 65 67 65 72 20 3c 74 74 3e 3c 69 3e 76 61  nteger <tt><i>va
9f10: 6c 75 65 3c 2f 69 3e 3c 2f 74 74 3e 20 69 6e 74  lue</i></tt> int
9f20: 6f 20 74 68 65 20 73 68 61 72 65 64 20 70 72 65  o the shared pre
9f30: 66 65 72 65 6e 63 65 20 66 69 6c 65 20 69 64 65  ference file ide
9f40: 6e 74 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c  ntified by <tt><
9f50: 69 3e 66 69 6c 65 3c 2f 69 3e 3c 2f 74 74 3e 20  i>file</i></tt> 
9f60: 75 6e 64 65 72 20 74 68 65 20 6e 61 6d 65 20 3c  under the name <
9f70: 74 74 3e 3c 69 3e 6b 65 79 3c 2f 69 3e 3c 2f 74  tt><i>key</i></t
9f80: 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20  t>.....<tt>borg 
9f90: 73 68 61 72 65 64 70 72 65 66 65 72 65 6e 63 65  sharedpreference
9fa0: 73 20 3c 69 3e 66 69 6c 65 3c 2f 69 3e 20 73 65  s <i>file</i> se
9fb0: 74 73 74 72 69 6e 67 20 3c 69 3e 6b 65 79 20 76  tstring <i>key v
9fc0: 61 6c 75 65 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d  alue</i></tt>...
9fd0: 0a 20 20 20 20 53 74 6f 72 65 20 74 68 65 20 73  .    Store the s
9fe0: 74 72 69 6e 67 20 3c 74 74 3e 3c 69 3e 76 61 6c  tring <tt><i>val
9ff0: 75 65 3c 2f 69 3e 3c 2f 74 74 3e 20 69 6e 74 6f  ue</i></tt> into
a000: 20 74 68 65 20 73 68 61 72 65 64 20 70 72 65 66   the shared pref
a010: 65 72 65 6e 63 65 20 66 69 6c 65 20 69 64 65 6e  erence file iden
a020: 74 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c 69  tified by <tt><i
a030: 3e 66 69 6c 65 3c 2f 69 3e 3c 2f 74 74 3e 20 75  >file</i></tt> u
a040: 6e 64 65 72 20 74 68 65 20 6e 61 6d 65 20 3c 74  nder the name <t
a050: 74 3e 3c 69 3e 6b 65 79 3c 2f 69 3e 3c 2f 74 74  t><i>key</i></tt
a060: 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 73  >.....<tt>borg s
a070: 68 61 72 65 64 70 72 65 66 65 72 65 6e 63 65 73  haredpreferences
a080: 20 3c 69 3e 66 69 6c 65 3c 2f 69 3e 20 72 65 6d   <i>file</i> rem
a090: 6f 76 65 20 3c 69 3e 6b 65 79 3c 2f 69 3e 3c 2f  ove <i>key</i></
a0a0: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 6d 6f 76  tt>....    Remov
a0b0: 65 20 74 68 65 20 76 61 6c 75 65 20 73 74 6f 72  e the value stor
a0c0: 65 64 20 75 6e 64 65 72 20 74 68 65 20 6e 61 6d  ed under the nam
a0d0: 65 20 3c 74 74 3e 3c 69 3e 6b 65 79 3c 2f 69 3e  e <tt><i>key</i>
a0e0: 3c 2f 74 74 3e 20 66 72 6f 6d 20 74 68 65 20 73  </tt> from the s
a0f0: 68 61 72 65 64 20 70 72 65 66 65 72 65 6e 63 65  hared preference
a100: 20 66 69 6c 65 20 69 64 65 6e 74 69 66 69 65 64   file identified
a110: 20 62 79 20 3c 74 74 3e 3c 69 3e 66 69 6c 65 3c   by <tt><i>file<
a120: 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74  /i></tt>.....<tt
a130: 3e 62 6f 72 67 20 73 68 61 72 65 64 70 72 65 66  >borg sharedpref
a140: 65 72 65 6e 63 65 73 20 3c 69 3e 66 69 6c 65 3c  erences <i>file<
a150: 2f 69 3e 20 63 6c 65 61 72 3c 2f 74 74 3e 0d 0a  /i> clear</tt>..
a160: 0d 0a 20 20 20 20 52 65 6d 6f 76 65 20 61 6c 6c  ..    Remove all
a170: 20 6b 65 79 2d 76 61 6c 75 65 20 70 61 69 72 73   key-value pairs
a180: 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 73   stored in the s
a190: 68 61 72 65 64 20 70 72 65 66 65 72 65 6e 63 65  hared preference
a1a0: 20 66 69 6c 65 20 69 64 65 6e 74 69 66 69 65 64   file identified
a1b0: 20 62 79 20 3c 74 74 3e 3c 69 3e 66 69 6c 65 3c   by <tt><i>file<
a1c0: 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74  /i></tt>.....<tt
a1d0: 3e 62 6f 72 67 20 73 68 61 72 65 64 70 72 65 66  >borg sharedpref
a1e0: 65 72 65 6e 63 65 73 20 3c 69 3e 66 69 6c 65 3c  erences <i>file<
a1f0: 2f 69 3e 20 61 6c 6c 3c 2f 74 74 3e 0d 0a 0d 0a  /i> all</tt>....
a200: 20 20 20 20 52 65 74 75 72 6e 20 61 20 54 63 6c      Return a Tcl
a210: 20 6c 69 73 74 20 73 75 69 74 61 62 6c 65 20 66   list suitable f
a220: 6f 72 20 3c 74 74 3e 61 72 72 61 79 20 73 65 74  or <tt>array set
a230: 3c 2f 74 74 3e 20 6f 66 20 61 6c 6c 20 6b 65 79  </tt> of all key
a240: 2d 76 61 6c 75 65 20 70 61 69 72 73 20 66 72 6f  -value pairs fro
a250: 6d 20 74 68 65 20 73 68 61 72 65 64 20 70 72 65  m the shared pre
a260: 66 65 72 65 6e 63 65 20 66 69 6c 65 20 69 64 65  ference file ide
a270: 6e 74 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c  ntified by <tt><
a280: 69 3e 66 69 6c 65 3c 2f 69 3e 3c 2f 74 74 3e 2e  i>file</i></tt>.
a290: 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 73 68 61  ....<tt>borg sha
a2a0: 72 65 64 70 72 65 66 65 72 65 6e 63 65 73 20 3c  redpreferences <
a2b0: 69 3e 66 69 6c 65 3c 2f 69 3e 20 61 6c 6c 74 79  i>file</i> allty
a2c0: 70 65 73 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  pes</tt>....    
a2d0: 52 65 74 75 72 6e 20 61 20 54 63 6c 20 6c 69 73  Return a Tcl lis
a2e0: 74 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 3c  t suitable for <
a2f0: 74 74 3e 61 72 72 61 79 20 73 65 74 3c 2f 74 74  tt>array set</tt
a300: 3e 20 6f 66 20 61 6c 6c 20 6b 65 79 73 20 61 6e  > of all keys an
a310: 64 20 74 68 65 69 72 20 72 65 73 70 65 63 74 69  d their respecti
a320: 76 65 20 76 61 6c 75 65 20 74 79 70 65 73 20 66  ve value types f
a330: 72 6f 6d 20 74 68 65 20 73 68 61 72 65 64 20 70  rom the shared p
a340: 72 65 66 65 72 65 6e 63 65 20 66 69 6c 65 20 69  reference file i
a350: 64 65 6e 74 69 66 69 65 64 20 62 79 20 3c 74 74  dentified by <tt
a360: 3e 3c 69 3e 66 69 6c 65 3c 2f 69 3e 3c 2f 74 74  ><i>file</i></tt
a370: 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 73  >.....<tt>borg s
a380: 68 61 72 65 64 70 72 65 66 65 72 65 6e 63 65 73  haredpreferences
a390: 20 3c 69 3e 66 69 6c 65 3c 2f 69 3e 20 6b 65 79   <i>file</i> key
a3a0: 73 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65  s</tt>....    Re
a3b0: 74 75 72 6e 20 61 20 54 63 6c 20 6c 69 73 74 20  turn a Tcl list 
a3c0: 6f 66 20 61 6c 6c 20 6b 65 79 73 20 66 72 6f 6d  of all keys from
a3d0: 20 74 68 65 20 73 68 61 72 65 64 20 70 72 65 66   the shared pref
a3e0: 65 72 65 6e 63 65 20 66 69 6c 65 20 69 64 65 6e  erence file iden
a3f0: 74 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c 69  tified by <tt><i
a400: 3e 66 69 6c 65 3c 2f 69 3e 3c 2f 74 74 3e 2e 0d  >file</i></tt>..
a410: 0a 0d 0a 3c 68 34 3e 47 65 6e 65 72 61 6c 3c 2f  ...<h4>General</
a420: 68 34 3e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20  h4>....<tt>borg 
a430: 77 69 74 68 64 72 61 77 3c 2f 74 74 3e 0d 0a 0d  withdraw</tt>...
a440: 0a 20 20 20 20 48 69 64 65 73 20 74 68 65 20 61  .    Hides the a
a450: 70 70 6c 69 63 61 74 69 6f 6e 20 77 69 6e 64 6f  pplication windo
a460: 77 20 62 79 20 70 75 74 74 69 6e 67 20 69 74 20  w by putting it 
a470: 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 41 6e  to the end of An
a480: 64 72 6f 69 64 27 73 20 61 63 74 69 76 69 74 79  droid's activity
a490: 20 73 74 61 63 6b 2e 20 43 61 6e 20 62 65 20 75   stack. Can be u
a4a0: 73 65 66 75 6c 20 77 68 65 6e 20 62 6f 75 6e 64  seful when bound
a4b0: 20 74 6f 20 74 68 65 20 42 61 63 6b 20 6b 65 79   to the Back key
a4c0: 20 28 3c 74 74 3e 3c 4b 65 79 2d 42 72 65 61 6b   (<tt><Key-Break
a4d0: 3e 3c 2f 74 74 3e 20 69 6e 20 41 6e 64 72 6f 57  ></tt> in AndroW
a4e0: 69 73 68 29 2e 20 54 68 65 72 65 27 73 20 6e 6f  ish). There's no
a4f0: 20 6f 70 70 6f 73 69 74 65 20 63 6f 6d 6d 61 6e   opposite comman
a500: 64 2c 20 69 2e 65 2e 20 74 68 65 20 61 70 70 6c  d, i.e. the appl
a510: 69 63 61 74 69 6f 6e 20 63 61 6e 20 62 65 20 62  ication can be b
a520: 72 6f 75 67 68 74 20 74 6f 20 66 72 6f 6e 74 20  rought to front 
a530: 61 67 61 69 6e 20 6f 6e 6c 79 20 62 79 20 75 73  again only by us
a540: 65 72 20 69 6e 74 65 72 61 63 74 69 6f 6e 2e 0d  er interaction..
a550: 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 62 72 69 67  ...<tt>borg brig
a560: 68 74 6e 65 73 73 20 3f 3c 69 3e 70 65 72 63 65  htness ?<i>perce
a570: 6e 74 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a  nt</i>?</tt>....
a580: 20 20 20 20 53 65 74 73 20 6f 72 20 67 65 74 73      Sets or gets
a590: 20 74 68 65 20 73 63 72 65 65 6e 20 62 72 69 67   the screen brig
a5a0: 68 74 6e 65 73 73 2e 20 49 66 20 74 68 65 20 70  htness. If the p
a5b0: 65 72 63 65 6e 74 61 67 65 20 69 73 20 6e 65 67  ercentage is neg
a5c0: 61 74 69 76 65 2c 20 74 68 65 20 64 65 66 61 75  ative, the defau
a5d0: 6c 74 20 76 61 6c 75 65 20 69 73 20 72 65 73 74  lt value is rest
a5e0: 6f 72 65 64 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72  ored.....<tt>bor
a5f0: 67 20 6f 6e 69 6e 74 65 6e 74 20 3f 3c 69 3e 63  g onintent ?<i>c
a600: 6f 6d 6d 61 6e 64 3c 2f 69 3e 3f 3c 2f 74 74 3e  ommand</i>?</tt>
a610: 0d 0a 0d 0a 20 20 20 20 53 65 74 73 20 6f 72 20  ....    Sets or 
a620: 67 65 74 73 20 74 68 65 20 63 61 6c 6c 62 61 63  gets the callbac
a630: 6b 20 3c 74 74 3e 3c 69 3e 63 6f 6d 6d 61 6e 64  k <tt><i>command
a640: 3c 2f 69 3e 3c 2f 74 74 3e 20 77 68 69 63 68 20  </i></tt> which 
a650: 69 73 20 65 76 61 6c 75 61 74 65 64 20 77 68 65  is evaluated whe
a660: 6e 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f  n the applicatio
a670: 6e 20 72 65 63 65 69 76 65 64 20 61 6e 20 41 6e  n received an An
a680: 64 72 6f 69 64 20 69 6e 74 65 6e 74 2e 20 57 68  droid intent. Wh
a690: 65 6e 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68  en evaluating th
a6a0: 61 74 20 63 6f 6d 6d 61 6e 64 2c 20 74 68 65 20  at command, the 
a6b0: 70 61 72 61 6d 65 74 65 72 73 20 61 63 74 69 6f  parameters actio
a6c0: 6e 20 6e 61 6d 65 2c 20 55 52 49 2c 20 4d 49 4d  n name, URI, MIM
a6d0: 45 20 74 79 70 65 2c 20 63 61 74 65 67 6f 72 69  E type, categori
a6e0: 65 73 2c 20 61 72 67 75 6d 65 6e 74 73 20 66 72  es, arguments fr
a6f0: 6f 6d 20 74 68 65 20 69 6e 74 65 6e 74 20 61 72  om the intent ar
a700: 65 20 61 70 70 65 6e 64 65 64 2e 20 57 68 65 6e  e appended. When
a710: 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 69 73   the callback is
a720: 20 73 65 74 20 66 6f 72 20 74 68 65 20 66 69 72   set for the fir
a730: 73 74 20 74 69 6d 65 2c 20 69 74 20 67 65 74 73  st time, it gets
a740: 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 65 76 61   immediately eva
a750: 6c 75 61 74 65 64 20 77 69 74 68 20 74 68 65 20  luated with the 
a760: 70 61 72 61 6d 65 74 65 72 73 20 6f 66 20 74 68  parameters of th
a770: 65 20 63 75 72 72 65 6e 74 20 28 73 74 61 72 74  e current (start
a780: 75 70 29 20 69 6e 74 65 6e 74 2e 0d 0a 0d 0a 3c  up) intent.....<
a790: 74 74 3e 62 6f 72 67 20 71 75 65 72 79 61 63 74  tt>borg queryact
a7a0: 69 76 69 74 65 73 20 3c 69 3e 61 63 74 69 6f 6e  ivites <i>action
a7b0: 3c 2f 69 3e 20 3f 3c 69 3e 75 72 69 20 74 79 70  </i> ?<i>uri typ
a7c0: 65 20 63 61 74 65 67 6f 72 69 65 73 20 63 6f 6d  e categories com
a7d0: 70 6f 6e 65 6e 74 3c 2f 69 3e 3f 3c 2f 74 74 3e  ponent</i>?</tt>
a7e0: 0d 0a 0d 0a 20 20 20 20 51 75 65 72 69 65 73 20  ....    Queries 
a7f0: 41 6e 64 72 6f 69 64 27 73 20 61 63 74 69 76 69  Android's activi
a800: 74 79 20 6d 61 6e 61 67 65 72 20 66 6f 72 20 61  ty manager for a
a810: 63 74 69 76 69 74 69 65 73 20 6f 6e 20 74 68 65  ctivities on the
a820: 20 67 69 76 65 6e 20 69 6e 74 65 6e 74 20 70 61   given intent pa
a830: 72 61 6d 65 74 65 72 73 2e 20 3c 74 74 3e 3c 69  rameters. <tt><i
a840: 3e 63 61 74 65 67 6f 72 69 65 73 3c 2f 69 3e 3c  >categories</i><
a850: 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e 3c 69 3e  /tt> and <tt><i>
a860: 63 6f 6d 70 6f 6e 65 6e 74 3c 2f 69 3e 3c 2f 74  component</i></t
a870: 74 3e 20 61 72 65 20 6f 70 74 69 6f 6e 61 6c 20  t> are optional 
a880: 6c 69 73 74 73 2e 20 54 68 65 20 6c 61 74 74 65  lists. The latte
a890: 72 20 77 68 65 6e 20 6e 6f 6e 2d 65 6d 70 74 79  r when non-empty
a8a0: 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 74 68   must contain th
a8b0: 65 20 74 77 6f 20 65 6c 65 6d 65 6e 74 73 20 70  e two elements p
a8c0: 61 63 6b 61 67 65 20 6e 61 6d 65 20 61 6e 64 20  ackage name and 
a8d0: 63 6c 61 73 73 20 6e 61 6d 65 2e 0d 0a 0d 0a 3c  class name.....<
a8e0: 74 74 3e 62 6f 72 67 20 71 75 65 72 79 73 65 72  tt>borg queryser
a8f0: 76 69 63 65 73 20 3c 69 3e 61 63 74 69 6f 6e 3c  vices <i>action<
a900: 2f 69 3e 20 3f 3c 69 3e 75 72 69 20 74 79 70 65  /i> ?<i>uri type
a910: 20 63 61 74 65 67 6f 72 69 65 73 20 63 6f 6d 70   categories comp
a920: 6f 6e 65 6e 74 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d  onent</i>?</tt>.
a930: 0a 0d 0a 20 20 20 20 51 75 65 72 69 65 73 20 41  ...    Queries A
a940: 6e 64 72 6f 69 64 27 73 20 61 63 74 69 76 69 74  ndroid's activit
a950: 79 20 6d 61 6e 61 67 65 72 20 66 6f 72 20 73 65  y manager for se
a960: 72 76 69 63 65 73 20 6f 6e 20 74 68 65 20 67 69  rvices on the gi
a970: 76 65 6e 20 69 6e 74 65 6e 74 20 70 61 72 61 6d  ven intent param
a980: 65 74 65 72 73 2c 20 73 69 6d 69 6c 61 72 20 74  eters, similar t
a990: 6f 20 3c 74 74 3e 62 6f 72 67 20 71 75 65 72 79  o <tt>borg query
a9a0: 61 63 74 69 76 69 74 69 65 73 3c 2f 74 74 3e 2e  activities</tt>.
a9b0: 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 71 75 65  ....<tt>borg que
a9c0: 72 79 62 72 6f 61 64 63 61 73 74 72 65 63 65 69  rybroadcastrecei
a9d0: 76 65 72 73 20 3c 69 3e 61 63 74 69 6f 6e 3c 2f  vers <i>action</
a9e0: 69 3e 20 3f 3c 69 3e 75 72 69 20 74 79 70 65 20  i> ?<i>uri type 
a9f0: 63 61 74 65 67 6f 72 69 65 73 20 63 6f 6d 70 6f  categories compo
aa00: 6e 65 6e 74 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a  nent</i>?</tt>..
aa10: 0d 0a 20 20 20 20 51 75 65 72 69 65 73 20 41 6e  ..    Queries An
aa20: 64 72 6f 69 64 27 73 20 61 63 74 69 76 69 74 79  droid's activity
aa30: 20 6d 61 6e 61 67 65 72 20 66 6f 72 20 62 72 6f   manager for bro
aa40: 61 64 63 61 73 74 20 72 65 63 65 69 76 65 72 73  adcast receivers
aa50: 20 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 69 6e   on the given in
aa60: 74 65 6e 74 20 70 61 72 61 6d 65 74 65 72 73 2c  tent parameters,
aa70: 20 73 69 6d 69 6c 61 72 20 74 6f 20 3c 74 74 3e   similar to <tt>
aa80: 62 6f 72 67 20 71 75 65 72 79 61 63 74 69 76 69  borg queryactivi
aa90: 74 69 65 73 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74  ties</tt>.....<t
aaa0: 74 3e 62 6f 72 67 20 73 63 72 65 65 6e 6f 72 69  t>borg screenori
aab0: 65 6e 74 61 74 69 6f 6e 20 3f 3c 69 3e 6f 72 69  entation ?<i>ori
aac0: 65 6e 74 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d  ent</i>?</tt>...
aad0: 0a 20 20 20 20 51 75 65 72 69 65 73 20 6f 72 20  .    Queries or 
aae0: 73 77 69 74 63 68 65 73 20 74 68 65 20 73 63 72  switches the scr
aaf0: 65 65 6e 20 6f 72 69 65 6e 74 61 74 69 6f 6e 2c  een orientation,
ab00: 20 3c 74 74 3e 3c 69 3e 6f 72 69 65 6e 74 3c 2f   <tt><i>orient</
ab10: 69 3e 3c 2f 74 74 3e 20 63 61 6e 20 62 65 20 6f  i></tt> can be o
ab20: 6e 65 20 6f 66 20 3c 74 74 3e 75 6e 73 70 65 63  ne of <tt>unspec
ab30: 69 66 69 65 64 3c 2f 74 74 3e 2c 20 3c 74 74 3e  ified</tt>, <tt>
ab40: 6c 61 6e 64 73 63 61 70 65 3c 2f 74 74 3e 2c 20  landscape</tt>, 
ab50: 3c 74 74 3e 70 6f 72 74 72 61 69 74 3c 2f 74 74  <tt>portrait</tt
ab60: 3e 2c 20 3c 74 74 3e 75 73 65 72 3c 2f 74 74 3e  >, <tt>user</tt>
ab70: 2c 20 3c 74 74 3e 62 65 68 69 6e 64 3c 2f 74 74  , <tt>behind</tt
ab80: 3e 2c 20 3c 74 74 3e 73 65 6e 73 6f 72 3c 2f 74  >, <tt>sensor</t
ab90: 74 3e 2c 20 3c 74 74 3e 6e 6f 73 65 6e 73 6f 72  t>, <tt>nosensor
aba0: 3c 2f 74 74 3e 2c 20 3c 74 74 3e 73 65 6e 73 6f  </tt>, <tt>senso
abb0: 72 6c 61 6e 64 73 63 61 70 65 3c 2f 74 74 3e 2c  rlandscape</tt>,
abc0: 20 3c 74 74 3e 73 65 6e 73 6f 72 70 6f 72 74 72   <tt>sensorportr
abd0: 61 69 74 3c 2f 74 74 3e 2c 20 3c 74 74 3e 72 65  ait</tt>, <tt>re
abe0: 76 65 72 73 65 6c 61 6e 64 73 63 61 70 65 3c 2f  verselandscape</
abf0: 74 74 3e 2c 20 3c 74 74 3e 72 65 76 65 72 73 65  tt>, <tt>reverse
ac00: 70 6f 72 74 72 61 69 74 3c 2f 74 74 3e 2c 20 3c  portrait</tt>, <
ac10: 74 74 3e 66 75 6c 6c 73 65 6e 73 6f 72 3c 2f 74  tt>fullsensor</t
ac20: 74 3e 2c 20 3c 74 74 3e 75 73 65 72 6c 61 6e 64  t>, <tt>userland
ac30: 73 63 61 70 65 3c 2f 74 74 3e 2c 20 3c 74 74 3e  scape</tt>, <tt>
ac40: 75 73 65 72 70 6f 72 74 72 61 69 74 3c 2f 74 74  userportrait</tt
ac50: 3e 2c 20 3c 74 74 3e 66 75 6c 6c 75 73 65 72 3c  >, <tt>fulluser<
ac60: 2f 74 74 3e 2c 20 6f 72 20 3c 74 74 3e 6c 6f 63  /tt>, or <tt>loc
ac70: 6b 65 64 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74  ked</tt>.....<tt
ac80: 3e 62 6f 72 67 20 6b 65 79 62 6f 61 72 64 69 6e  >borg keyboardin
ac90: 66 6f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52  fo</tt>....    R
aca0: 65 74 75 72 6e 73 20 69 6e 66 6f 72 6d 61 74 69  eturns informati
acb0: 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 63 75 72  on about the cur
acc0: 72 65 6e 74 20 6b 65 79 62 6f 61 72 64 20 63 6f  rent keyboard co
acd0: 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 73 20 61  nfiguration as a
ace0: 20 6c 69 73 74 20 73 75 69 74 65 64 20 66 6f 72   list suited for
acf0: 20 3c 74 74 3e 61 72 72 61 79 20 73 65 74 3c 2f   <tt>array set</
ad00: 74 74 3e 20 6f 72 20 3c 74 74 3e 64 69 63 74 20  tt> or <tt>dict 
ad10: 63 72 65 61 74 65 3c 2f 74 74 3e 20 77 69 74 68  create</tt> with
ad20: 20 74 68 65 73 65 20 66 69 65 6c 64 73 3a 20 3c   these fields: <
ad30: 74 74 3e 6b 65 79 62 6f 61 72 64 3c 2f 74 74 3e  tt>keyboard</tt>
ad40: 20 77 69 74 68 20 70 6f 73 73 69 62 6c 65 20 76   with possible v
ad50: 61 6c 75 65 73 20 3c 74 74 3e 6e 6f 6e 65 3c 2f  alues <tt>none</
ad60: 74 74 3e 2c 20 3c 74 74 3e 31 32 6b 65 79 3c 2f  tt>, <tt>12key</
ad70: 74 74 3e 2c 20 61 6e 64 20 3c 74 74 3e 71 77 65  tt>, and <tt>qwe
ad80: 72 74 79 3c 2f 74 74 3e 2c 20 3c 74 74 3e 68 69  rty</tt>, <tt>hi
ad90: 64 64 65 6e 3c 2f 74 74 3e 20 61 6e 64 20 3c 74  dden</tt> and <t
ada0: 74 3e 68 61 72 64 5f 68 69 64 64 65 6e 3c 2f 74  t>hard_hidden</t
adb0: 74 3e 20 77 69 74 68 20 76 61 6c 75 65 73 20 30  t> with values 0
adc0: 20 28 6e 6f 74 20 68 69 64 64 65 6e 29 2c 20 31   (not hidden), 1
add0: 2c 20 28 68 69 64 64 65 6e 29 2c 20 61 6e 64 20  , (hidden), and 
ade0: 2d 31 20 28 75 6e 6b 6e 6f 77 6e 29 2e 20 54 68  -1 (unknown). Th
adf0: 69 73 20 63 61 6e 20 62 65 20 72 65 61 64 20 6f  is can be read o
ae00: 75 74 20 61 6e 79 20 74 69 6d 65 2e 20 41 6e 20  ut any time. An 
ae10: 75 70 64 61 74 65 20 69 6e 20 6b 65 79 62 6f 61  update in keyboa
ae20: 72 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e  rd configuration
ae30: 20 73 74 61 74 65 20 69 73 20 69 6e 64 69 63 61   state is indica
ae40: 74 65 64 20 62 79 20 74 68 65 20 76 69 72 74 75  ted by the virtu
ae50: 61 6c 20 65 76 65 6e 74 20 3c 74 74 3e 3c 3c 4b  al event <tt><<K
ae60: 65 79 62 6f 61 72 64 49 6e 66 6f 3e 3e 3c 2f 74  eyboardInfo>></t
ae70: 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20  t>.....<tt>borg 
ae80: 61 6c 61 72 6d 20 63 6c 65 61 72 20 3c 69 3e 61  alarm clear <i>a
ae90: 63 74 69 6f 6e 3c 2f 69 3e 20 3f 3c 69 3e 75 72  ction</i> ?<i>ur
aea0: 69 20 74 79 70 65 20 63 61 74 65 67 6f 72 69 65  i type categorie
aeb0: 73 20 63 6f 6d 70 6f 6e 65 6e 74 3c 2f 69 3e 3f  s component</i>?
aec0: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 43 6c 65  </tt>....    Cle
aed0: 61 72 73 20 61 6e 20 61 6c 61 72 6d 20 77 68 6f  ars an alarm who
aee0: 73 65 20 70 61 74 74 65 72 6e 20 6d 61 74 63 68  se pattern match
aef0: 65 73 20 74 68 65 20 67 69 76 65 6e 20 69 6e 74  es the given int
af00: 65 6e 74 20 70 61 72 61 6d 65 74 65 72 73 2e 0d  ent parameters..
af10: 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20 61 6c 61 72  ...<tt>borg alar
af20: 6d 20 73 65 74 20 3c 69 3e 77 68 65 6e 20 72 65  m set <i>when re
af30: 70 65 61 74 20 61 63 74 69 6f 6e 3c 2f 69 3e 20  peat action</i> 
af40: 3f 3c 69 3e 75 72 69 20 74 79 70 65 20 63 61 74  ?<i>uri type cat
af50: 65 67 6f 72 69 65 73 20 63 6f 6d 70 6f 6e 65 6e  egories componen
af60: 74 20 61 72 67 20 2e 2e 2e 3c 2f 69 3e 3f 3c 2f  t arg ...</i>?</
af70: 74 74 3e 0d 0a 0d 0a 20 20 20 20 53 65 74 73 20  tt>....    Sets 
af80: 61 6e 20 61 6c 61 72 6d 20 74 6f 20 66 69 72 65  an alarm to fire
af90: 20 61 74 20 3c 74 74 3e 3c 69 3e 77 68 65 6e 3c   at <tt><i>when<
afa0: 2f 69 3e 3c 2f 74 74 3e 20 28 55 4e 2a 58 20 65  /i></tt> (UN*X e
afb0: 70 6f 63 68 2c 20 73 65 63 6f 6e 64 73 29 20 77  poch, seconds) w
afc0: 69 74 68 20 72 65 70 65 74 69 74 69 6f 6e 20 65  ith repetition e
afd0: 61 63 68 20 3c 74 74 3e 3c 69 3e 72 65 70 65 61  ach <tt><i>repea
afe0: 74 3c 2f 69 3e 3c 2f 74 74 3e 20 73 65 63 6f 6e  t</i></tt> secon
aff0: 64 73 2c 20 77 68 65 6e 20 3c 74 74 3e 3c 69 3e  ds, when <tt><i>
b000: 72 65 70 65 61 74 3c 2f 69 3e 3c 2f 74 74 3e 20  repeat</i></tt> 
b010: 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20  is greater than 
b020: 30 2e 20 54 68 65 20 61 6c 61 72 6d 20 73 65 6e  0. The alarm sen
b030: 64 73 20 61 6e 20 69 6e 74 65 6e 74 20 6d 61 64  ds an intent mad
b040: 65 20 75 70 20 6f 66 20 74 68 65 20 67 69 76 65  e up of the give
b050: 6e 20 69 6e 74 65 6e 74 20 70 61 72 61 6d 65 74  n intent paramet
b060: 65 72 73 20 28 3c 74 74 3e 3c 69 3e 61 63 74 69  ers (<tt><i>acti
b070: 6f 6e 3c 2f 69 3e 3c 2f 74 74 3e 20 65 74 63 2e  on</i></tt> etc.
b080: 29 2e 20 54 68 65 20 3c 74 74 3e 3c 69 3e 63 6f  ). The <tt><i>co
b090: 6d 70 6f 6e 65 6e 74 3c 2f 69 3e 3c 2f 74 74 3e  mponent</i></tt>
b0a0: 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 69 6e   parameter is in
b0b0: 74 65 72 70 72 65 74 65 64 20 73 70 65 63 69 61  terpreted specia
b0c0: 6c 6c 79 3a 20 77 68 65 6e 20 65 6d 70 74 79 20  lly: when empty 
b0d0: 6e 6f 20 63 6f 6d 70 6f 6e 65 6e 74 20 69 73 20  no component is 
b0e0: 73 65 74 20 6f 6e 20 74 68 65 20 69 6e 74 65 6e  set on the inten
b0f0: 74 2c 20 77 68 65 6e 20 67 69 76 65 6e 20 61 73  t, when given as
b100: 20 73 65 6c 66 20 74 68 65 20 63 61 6c 6c 69 6e   self the callin
b110: 67 20 70 61 63 6b 61 67 65 2f 63 6c 61 73 73 20  g package/class 
b120: 69 73 20 73 65 74 20 61 73 20 63 6f 6d 70 6f 6e  is set as compon
b130: 65 6e 74 20 66 6f 72 20 74 68 65 20 69 6e 74 65  ent for the inte
b140: 6e 74 20 28 73 65 6e 64 69 6e 67 20 74 68 65 20  nt (sending the 
b150: 69 6e 74 65 6e 74 20 74 6f 20 69 74 73 65 6c 66  intent to itself
b160: 2c 20 69 2e 65 2e 20 74 68 65 20 63 61 6c 6c 62  , i.e. the callb
b170: 61 63 6b 20 6f 66 20 3c 74 74 3e 62 6f 72 67 20  ack of <tt>borg 
b180: 6f 6e 69 6e 74 65 6e 74 3c 2f 74 74 3e 20 77 69  onintent</tt> wi
b190: 6c 6c 20 72 65 63 65 69 76 65 20 69 74 29 2e 20  ll receive it). 
b1a0: 49 6e 20 61 6c 6c 20 6f 74 68 65 72 20 63 61 73  In all other cas
b1b0: 65 73 20 63 6f 6d 70 6f 6e 65 6e 74 20 6d 75 73  es component mus
b1c0: 74 20 62 65 20 61 20 6c 69 73 74 20 77 69 74 68  t be a list with
b1d0: 20 74 68 65 20 74 77 6f 20 65 6c 65 6d 65 6e 74   the two element
b1e0: 73 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 61  s package name a
b1f0: 6e 64 20 63 6c 61 73 73 20 6e 61 6d 65 2e 20 3c  nd class name. <
b200: 74 74 3e 3c 69 3e 61 72 67 3c 2f 69 3e 3c 2f 74  tt><i>arg</i></t
b210: 74 3e 20 61 6e 64 20 66 6f 6c 6c 6f 77 69 6e 67  t> and following
b220: 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20   parameters are 
b230: 61 64 64 65 64 20 74 6f 20 74 68 65 20 69 6e 74  added to the int
b240: 65 6e 74 20 61 73 20 6b 65 79 20 76 61 6c 75 65  ent as key value
b250: 20 70 61 69 72 73 20 6f 66 20 65 78 74 72 61 20   pairs of extra 
b260: 64 61 74 61 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72  data.....<tt>bor
b270: 67 20 61 6c 61 72 6d 20 77 61 6b 65 75 70 20 3c  g alarm wakeup <
b280: 69 3e 77 68 65 6e 20 72 65 70 65 61 74 20 61 63  i>when repeat ac
b290: 74 69 6f 6e 3c 2f 69 3e 20 3f 3c 69 3e 75 72 69  tion</i> ?<i>uri
b2a0: 20 74 79 70 65 20 63 61 74 65 67 6f 72 69 65 73   type categories
b2b0: 20 63 6f 6d 70 6f 6e 65 6e 74 20 61 72 67 20 2e   component arg .
b2c0: 2e 2e 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a  ..</i>?</tt>....
b2d0: 20 20 20 20 4c 69 6b 65 20 3c 74 74 3e 62 6f 72      Like <tt>bor
b2e0: 67 20 61 6c 61 72 6d 20 73 65 74 3c 2f 74 74 3e  g alarm set</tt>
b2f0: 20 62 75 74 20 74 68 69 73 20 74 79 70 65 20 6f   but this type o
b300: 66 20 61 6c 61 72 6d 20 69 73 20 61 62 6c 65 20  f alarm is able 
b310: 74 6f 20 77 61 6b 65 20 75 70 20 74 68 65 20 64  to wake up the d
b320: 65 76 69 63 65 20 77 68 65 6e 20 73 75 73 70 65  evice when suspe
b330: 6e 64 65 64 20 28 64 65 76 69 63 65 20 62 65 68  nded (device beh
b340: 61 76 69 6f 72 20 64 65 70 65 6e 64 73 20 6f 6e  avior depends on
b350: 20 6c 6f 63 6b 20 73 63 72 65 65 6e 20 73 65 74   lock screen set
b360: 74 69 6e 67 73 29 2e 0d 0a 0d 0a 3c 74 74 3e 62  tings).....<tt>b
b370: 6f 72 67 20 61 63 74 69 76 69 74 79 20 3c 69 3e  org activity <i>
b380: 61 63 74 69 6f 6e 20 75 72 69 20 74 79 70 65 3c  action uri type<
b390: 2f 69 3e 20 3f 3c 69 3e 63 61 74 65 67 6f 72 69  /i> ?<i>categori
b3a0: 65 73 3c 2f 69 3e 20 3f 3c 69 3e 63 6f 6d 70 6f  es</i> ?<i>compo
b3b0: 6e 65 6e 74 3c 2f 69 3e 20 3f 3c 69 3e 61 72 67  nent</i> ?<i>arg
b3c0: 75 6d 65 6e 74 73 3c 2f 69 3e 20 3f 3c 69 3e 63  uments</i> ?<i>c
b3d0: 61 6c 6c 62 61 63 6b 3c 2f 69 3e 3f 3f 3f 3f 3c  allback</i>????<
b3e0: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 54 68 69 73  /tt>....    This
b3f0: 20 61 20 76 65 72 79 20 66 6c 65 78 69 62 6c 65   a very flexible
b400: 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 61 6c   command that al
b410: 6c 6f 77 73 20 65 78 74 65 6e 73 69 76 65 20 61  lows extensive a
b420: 63 63 65 73 73 20 74 6f 20 74 68 65 20 41 6e 64  ccess to the And
b430: 72 6f 69 64 20 4f 53 20 61 6e 64 20 6f 74 68 65  roid OS and othe
b440: 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e 20  r applications. 
b450: 3c 74 74 3e 3c 69 3e 63 61 74 65 67 6f 72 69 65  <tt><i>categorie
b460: 73 3c 2f 69 3e 3c 2f 74 74 3e 2c 20 3c 74 74 3e  s</i></tt>, <tt>
b470: 3c 69 3e 63 6f 6d 70 6f 6e 65 6e 74 3c 2f 69 3e  <i>component</i>
b480: 3c 2f 74 74 3e 2c 20 61 6e 64 20 3c 74 74 3e 3c  </tt>, and <tt><
b490: 69 3e 61 72 67 75 6d 65 6e 74 73 3c 2f 69 3e 3c  i>arguments</i><
b4a0: 2f 74 74 3e 20 61 72 65 20 6f 70 74 69 6f 6e 61  /tt> are optiona
b4b0: 6c 20 6c 69 73 74 73 2e 20 3c 74 74 3e 3c 69 3e  l lists. <tt><i>
b4c0: 63 61 6c 6c 62 61 63 6b 3c 2f 69 3e 3c 2f 74 74  callback</i></tt
b4d0: 3e 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66  > is the name of
b4e0: 20 74 68 65 20 70 72 6f 63 65 64 75 72 65 20 74   the procedure t
b4f0: 68 61 74 20 69 73 20 65 76 61 6c 75 61 74 65 64  hat is evaluated
b500: 20 77 68 65 6e 20 74 68 65 20 61 63 74 69 76 69   when the activi
b510: 74 79 20 3c 74 74 3e 3c 69 3e 61 63 74 69 6f 6e  ty <tt><i>action
b520: 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 63 6f 6d  </i></tt> is com
b530: 70 6c 65 74 65 2e 20 3c 74 74 3e 3c 69 3e 61 72  plete. <tt><i>ar
b540: 67 75 6d 65 6e 74 73 3c 2f 69 3e 3c 2f 74 74 3e  guments</i></tt>
b550: 20 61 72 65 20 6b 65 79 2d 76 61 6c 75 65 20 70   are key-value p
b560: 61 69 72 73 20 77 68 65 72 65 20 74 68 65 20 76  airs where the v
b570: 61 6c 75 65 73 20 61 72 65 20 6d 61 70 70 65 64  alues are mapped
b580: 20 74 6f 20 4a 61 76 61 20 73 74 72 69 6e 67 73   to Java strings
b590: 20 62 79 20 64 65 66 61 75 6c 74 2e 20 49 66 20   by default. If 
b5a0: 74 68 65 20 6b 65 79 20 69 73 20 61 20 32 2d 65  the key is a 2-e
b5b0: 6c 65 6d 65 6e 74 20 6c 69 73 74 20 6d 61 64 65  lement list made
b5c0: 20 75 70 20 6f 66 20 61 20 64 61 74 61 20 74 79   up of a data ty
b5d0: 70 65 20 69 6e 64 69 63 61 74 6f 72 20 28 3c 74  pe indicator (<t
b5e0: 74 3e 69 6e 74 3c 2f 74 74 3e 2c 20 3c 74 74 3e  t>int</tt>, <tt>
b5f0: 62 79 74 65 3c 2f 74 74 3e 2c 20 3c 74 74 3e 73  byte</tt>, <tt>s
b600: 68 6f 72 74 3c 2f 74 74 3e 2c 20 3c 74 74 3e 63  hort</tt>, <tt>c
b610: 68 61 72 3c 2f 74 74 3e 2c 20 3c 74 74 3e 6c 6f  har</tt>, <tt>lo
b620: 6e 67 3c 2f 74 74 3e 2c 20 3c 74 74 3e 66 6c 6f  ng</tt>, <tt>flo
b630: 61 74 3c 2f 74 74 3e 2c 20 3c 74 74 3e 64 6f 75  at</tt>, <tt>dou
b640: 62 6c 65 3c 2f 74 74 3e 2c 20 3c 74 74 3e 55 72  ble</tt>, <tt>Ur
b650: 69 3c 2f 74 74 3e 29 20 66 6f 6c 6c 6f 77 65 64  i</tt>) followed
b660: 20 62 79 20 74 68 65 20 6b 65 79 2c 20 74 68 65   by the key, the
b670: 20 76 61 6c 75 65 20 69 73 20 63 6f 6e 76 65 72   value is conver
b680: 74 65 64 20 74 6f 20 74 68 61 74 20 64 61 74 61  ted to that data
b690: 20 74 79 70 65 2e 20 53 65 65 20 62 65 6c 6f 77   type. See below
b6a0: 20 66 6f 72 20 73 6f 6d 65 20 65 78 61 6d 70 6c   for some exampl
b6b0: 65 73 20 6f 66 20 74 68 69 73 20 63 6f 6d 6d 61  es of this comma
b6c0: 6e 64 2e 0d 0a 0d 0a 3c 74 74 3e 62 6f 72 67 20  nd.....<tt>borg 
b6d0: 73 79 73 74 65 6d 75 69 20 3f 3c 69 3e 66 6c 61  systemui ?<i>fla
b6e0: 67 73 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a  gs</i>?</tt>....
b6f0: 20 20 20 20 52 65 74 75 72 6e 73 20 6f 72 20 73      Returns or s
b700: 65 74 73 20 76 61 72 69 6f 75 73 20 66 6c 61 67  ets various flag
b710: 73 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 63 65 72  s to control cer
b720: 74 61 69 6e 20 61 73 70 65 63 74 73 20 6f 66 20  tain aspects of 
b730: 73 79 73 74 65 6d 20 55 49 20 65 6c 65 6d 65 6e  system UI elemen
b740: 74 73 20 64 69 73 70 6c 61 79 65 64 20 6f 6e 20  ts displayed on 
b750: 74 68 65 20 64 65 76 69 63 65 27 73 20 73 63 72  the device's scr
b760: 65 65 6e 2e 20 54 68 69 73 20 69 73 20 63 75 72  een. This is cur
b770: 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 65 64  rently supported
b780: 20 6f 6e 6c 79 20 6f 6e 20 41 6e 64 72 6f 69 64   only on Android
b790: 20 34 2e 34 20 61 6e 64 20 6e 65 77 65 72 20 76   4.4 and newer v
b7a0: 65 72 73 69 6f 6e 73 2e 20 53 65 65 20 74 68 65  ersions. See the
b7b0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f   documentation o
b7c0: 6e 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a  n <a href="http:
b7d0: 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 61 6e 64 72  //developer.andr
b7e0: 6f 69 64 2e 63 6f 6d 2f 72 65 66 65 72 65 6e 63  oid.com/referenc
b7f0: 65 2f 61 6e 64 72 6f 69 64 2f 76 69 65 77 2f 56  e/android/view/V
b800: 69 65 77 2e 68 74 6d 6c 22 3e 61 6e 64 72 6f 69  iew.html">androi
b810: 64 2e 76 69 65 77 2e 56 69 65 77 3c 2f 61 3e 20  d.view.View</a> 
b820: 66 6f 72 20 61 20 64 65 73 63 72 69 70 74 69 6f  for a descriptio
b830: 6e 20 6f 66 20 74 68 65 20 3c 74 74 3e 53 59 53  n of the <tt>SYS
b840: 54 45 4d 5f 55 49 5f 2a 3c 2f 74 74 3e 20 66 6c  TEM_UI_*</tt> fl
b850: 61 67 73 2e 0d 0a 0d 0a 3c 68 33 3e 45 76 65 6e  ags.....<h3>Even
b860: 74 73 3c 2f 68 33 3e 0d 0a 0d 0a 54 68 65 73 65  ts</h3>....These
b870: 20 65 76 65 6e 74 73 20 61 72 65 20 67 65 6e 65   events are gene
b880: 72 61 74 65 64 20 66 6f 72 2f 62 79 20 63 65 72  rated for/by cer
b890: 74 61 69 6e 20 3c 74 74 3e 62 6f 72 67 3c 2f 74  tain <tt>borg</t
b8a0: 74 3e 20 72 65 6c 61 74 65 64 20 63 6f 6d 6d 61  t> related comma
b8b0: 6e 64 73 2e 20 54 68 65 79 20 61 72 65 20 72 65  nds. They are re
b8c0: 70 6f 72 74 65 64 20 74 6f 20 74 6f 70 6c 65 76  ported to toplev
b8d0: 65 6c 20 77 69 64 67 65 74 73 20 6f 6e 6c 79 2e  el widgets only.
b8e0: 0d 0a 0d 0a 3c 74 74 3e 3c 3c 4c 6f 63 61 74 69  ....<tt><<Locati
b8f0: 6f 6e 55 70 64 61 74 65 3e 3e 3c 2f 74 74 3e 0d  onUpdate>></tt>.
b900: 0a 0d 0a 20 20 20 20 4c 6f 63 61 74 69 6f 6e 20  ...    Location 
b910: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 68 61 73 20  information has 
b920: 62 65 65 6e 20 75 70 64 61 74 65 64 20 61 6e 64  been updated and
b930: 20 63 61 6e 20 62 65 20 72 65 61 64 20 6f 75 74   can be read out
b940: 20 75 73 69 6e 67 20 3c 74 74 3e 62 6f 72 67 20   using <tt>borg 
b950: 6c 6f 63 61 74 69 6f 6e 20 67 65 74 3c 2f 74 74  location get</tt
b960: 3e 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 47 50 53 55  >.....<tt><<GPSU
b970: 70 64 61 74 65 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a  pdate>></tt>....
b980: 20 20 20 20 47 50 53 20 72 65 6c 61 74 65 64 20      GPS related 
b990: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 68 61 73 20  information has 
b9a0: 62 65 65 6e 20 75 70 64 61 74 65 64 20 61 6e 64  been updated and
b9b0: 20 63 61 6e 20 62 65 20 72 65 61 64 20 6f 75 74   can be read out
b9c0: 20 75 73 69 6e 67 20 3c 74 74 3e 62 6f 72 67 20   using <tt>borg 
b9d0: 6c 6f 63 61 74 69 6f 6e 20 67 70 73 3c 2f 74 74  location gps</tt
b9e0: 3e 20 61 6e 64 20 3c 74 74 3e 62 6f 72 67 20 6c  > and <tt>borg l
b9f0: 6f 63 61 74 69 6f 6e 20 73 61 74 65 6c 6c 69 74  ocation satellit
ba00: 65 73 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e  es</tt>.....<tt>
ba10: 3c 3c 4e 4d 45 41 55 70 64 61 74 65 3e 3e 3c 2f  <<NMEAUpdate>></
ba20: 74 74 3e 0d 0a 0d 0a 20 20 20 20 4e 4d 45 41 20  tt>....    NMEA 
ba30: 64 61 74 61 20 68 61 73 20 62 65 65 6e 20 75 70  data has been up
ba40: 64 61 74 65 64 20 61 6e 64 20 63 61 6e 20 62 65  dated and can be
ba50: 20 72 65 61 64 20 6f 75 74 20 75 73 69 6e 67 20   read out using 
ba60: 3c 74 74 3e 62 6f 72 67 20 6c 6f 63 61 74 69 6f  <tt>borg locatio
ba70: 6e 20 6e 6d 65 61 3c 2f 74 74 3e 2e 0d 0a 0d 0a  n nmea</tt>.....
ba80: 3c 74 74 3e 3c 3c 4e 65 74 77 6f 72 6b 49 6e 66  <tt><<NetworkInf
ba90: 6f 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  o>></tt>....    
baa0: 4e 65 74 77 6f 72 6b 20 73 74 61 74 65 20 68 61  Network state ha
bab0: 73 20 63 68 61 6e 67 65 64 20 61 6e 64 20 63 61  s changed and ca
bac0: 6e 20 62 65 20 72 65 61 64 20 6f 75 74 20 75 73  n be read out us
bad0: 69 6e 67 20 3c 74 74 3e 62 6f 72 67 20 6e 65 74  ing <tt>borg net
bae0: 77 6f 72 6b 69 6e 66 6f 3c 2f 74 74 3e 2e 0d 0a  workinfo</tt>...
baf0: 0d 0a 0d 0a 3c 74 74 3e 3c 3c 54 65 74 68 65 72  ....<tt><<Tether
bb00: 49 6e 66 6f 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20  Info>></tt>.... 
bb10: 20 20 20 54 65 74 68 65 72 69 6e 67 20 73 74 61     Tethering sta
bb20: 74 65 20 68 61 73 20 63 68 61 6e 67 65 64 20 61  te has changed a
bb30: 6e 64 20 63 61 6e 20 62 65 20 72 65 61 64 20 6f  nd can be read o
bb40: 75 74 20 75 73 69 6e 67 20 3c 74 74 3e 62 6f 72  ut using <tt>bor
bb50: 67 20 74 65 74 68 65 72 69 6e 66 6f 3c 2f 74 74  g tetherinfo</tt
bb60: 3e 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 42 6c 75 65  >.....<tt><<Blue
bb70: 74 6f 6f 74 68 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a  tooth>></tt>....
bb80: 20 20 20 20 41 20 63 68 61 6e 67 65 20 69 6e 20      A change in 
bb90: 42 6c 75 65 74 6f 6f 74 68 20 73 74 61 74 65 20  Bluetooth state 
bba0: 61 6e 64 2f 6f 72 20 73 63 61 6e 20 6d 6f 64 65  and/or scan mode
bbb0: 20 68 61 73 20 6f 63 63 75 72 65 64 20 61 6e 64   has occured and
bbc0: 20 63 61 6e 20 62 65 20 72 65 61 64 20 6f 75 74   can be read out
bbd0: 20 75 73 69 6e 67 20 3c 74 74 3e 62 6f 72 67 20   using <tt>borg 
bbe0: 62 6c 75 65 74 6f 6f 74 68 20 73 74 61 74 65 3c  bluetooth state<
bbf0: 2f 74 74 3e 20 61 6e 64 2f 6f 72 20 3c 74 74 3e  /tt> and/or <tt>
bc00: 62 6f 72 67 20 62 6c 75 65 74 6f 6f 74 68 20 73  borg bluetooth s
bc10: 63 61 6e 6d 6f 64 65 3c 2f 74 74 3e 2e 0d 0a 0d  canmode</tt>....
bc20: 0a 3c 74 74 3e 3c 3c 53 65 6e 73 6f 72 55 70 64  .<tt><<SensorUpd
bc30: 61 74 65 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  ate>></tt>....  
bc40: 20 20 41 20 73 65 6e 73 6f 72 20 63 61 6e 20 62    A sensor can b
bc50: 65 20 72 65 61 64 20 75 73 69 6e 67 20 3c 74 74  e read using <tt
bc60: 3e 62 6f 72 67 20 73 65 6e 73 6f 72 20 67 65 74  >borg sensor get
bc70: 20 2e 2e 2e 3c 2f 74 74 3e 2e 20 54 68 65 20 66   ...</tt>. The f
bc80: 69 65 6c 64 20 3c 74 74 3e 25 78 3c 2f 74 74 3e  ield <tt>%x</tt>
bc90: 20 69 64 65 6e 74 69 66 69 65 73 20 74 68 65 20   identifies the 
bca0: 73 65 6e 73 6f 72 2e 0d 0a 0d 0a 3c 74 74 3e 3c  sensor.....<tt><
bcb0: 3c 4b 65 79 62 6f 61 72 64 49 6e 66 6f 3e 3e 3c  <KeyboardInfo>><
bcc0: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 54 68 65 20  /tt>....    The 
bcd0: 6b 65 79 62 6f 61 72 64 20 63 6f 6e 66 69 67 75  keyboard configu
bce0: 72 61 74 69 6f 6e 20 64 69 64 20 63 68 61 6e 67  ration did chang
bcf0: 65 20 61 6e 64 20 63 61 6e 20 62 65 20 6f 62 74  e and can be obt
bd00: 61 69 6e 65 64 20 62 79 20 3c 74 74 3e 62 6f 72  ained by <tt>bor
bd10: 67 20 6b 65 79 62 6f 61 72 64 69 6e 66 6f 3c 2f  g keyboardinfo</
bd20: 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 50 68  tt>.....<tt><<Ph
bd30: 6f 6e 65 43 61 6c 6c 53 74 61 74 65 3e 3e 3c 2f  oneCallState>></
bd40: 74 74 3e 0d 0a 0d 0a 20 20 20 20 54 68 65 20 63  tt>....    The c
bd50: 61 6c 6c 20 73 74 61 74 65 20 6f 66 20 74 68 65  all state of the
bd60: 20 74 65 6c 65 70 68 6f 6e 65 20 68 61 73 20 63   telephone has c
bd70: 68 61 6e 67 65 64 20 61 6e 64 20 63 61 6e 20 62  hanged and can b
bd80: 65 20 6f 62 74 61 69 6e 65 64 20 62 79 20 3c 74  e obtained by <t
bd90: 74 3e 62 6f 72 67 20 70 68 6f 6e 65 69 6e 66 6f  t>borg phoneinfo
bda0: 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c  </tt>.....<tt><<
bdb0: 50 68 6f 6e 65 44 61 74 61 41 63 74 69 76 69 74  PhoneDataActivit
bdc0: 79 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  y>></tt>....    
bdd0: 54 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65  The state of the
bde0: 20 74 65 6c 65 70 68 6f 6e 65 27 73 20 64 61 74   telephone's dat
bdf0: 61 20 73 74 61 74 65 20 68 61 73 20 63 68 61 6e  a state has chan
be00: 67 65 64 20 61 6e 64 20 63 61 6e 20 62 65 20 6f  ged and can be o
be10: 62 74 61 69 6e 65 64 20 62 79 20 3c 74 74 3e 62  btained by <tt>b
be20: 6f 72 67 20 70 68 6f 6e 65 69 6e 66 6f 3c 2f 74  org phoneinfo</t
be30: 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 50 68 6f  t>.....<tt><<Pho
be40: 6e 65 43 6f 6e 6e 65 63 74 69 6f 6e 53 74 61 74  neConnectionStat
be50: 65 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  e>></tt>....    
be60: 54 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65  The state of the
be70: 20 74 65 6c 65 70 68 6f 6e 65 27 73 20 63 6f 6e   telephone's con
be80: 6e 65 63 74 69 76 69 74 79 20 68 61 73 20 63 68  nectivity has ch
be90: 61 6e 67 65 64 20 61 6e 64 20 63 61 6e 20 62 65  anged and can be
bea0: 20 6f 62 74 61 69 6e 65 64 20 62 79 20 3c 74 74   obtained by <tt
beb0: 3e 62 6f 72 67 20 70 68 6f 6e 65 69 6e 66 6f 3c  >borg phoneinfo<
bec0: 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 50  /tt>.....<tt><<P
bed0: 68 6f 6e 65 53 65 72 76 69 63 65 53 74 61 74 65  honeServiceState
bee0: 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 54  >></tt>....    T
bef0: 68 65 20 73 65 72 76 69 63 65 20 73 74 61 74 65  he service state
bf00: 20 6f 66 20 74 68 65 20 74 65 6c 65 70 68 6f 6e   of the telephon
bf10: 65 20 68 61 73 20 63 68 61 6e 67 65 64 20 61 6e  e has changed an
bf20: 64 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65  d can be obtaine
bf30: 64 20 62 79 20 3c 74 74 3e 62 6f 72 67 20 70 68  d by <tt>borg ph
bf40: 6f 6e 65 69 6e 66 6f 3c 2f 74 74 3e 2e 0d 0a 0d  oneinfo</tt>....
bf50: 0a 3c 74 74 3e 3c 3c 50 68 6f 6e 65 53 69 67 6e  .<tt><<PhoneSign
bf60: 61 6c 53 74 72 65 6e 67 74 68 3e 3e 3c 2f 74 74  alStrength>></tt
bf70: 3e 0d 0a 0d 0a 20 20 20 20 54 68 65 20 73 69 67  >....    The sig
bf80: 6e 61 6c 20 71 75 61 6c 69 74 79 20 6f 66 20 74  nal quality of t
bf90: 68 65 20 74 65 6c 65 70 68 6f 6e 65 20 68 61 73  he telephone has
bfa0: 20 63 68 61 6e 67 65 64 20 61 6e 64 20 63 61 6e   changed and can
bfb0: 20 62 65 20 6f 62 74 61 69 6e 65 64 20 62 79 20   be obtained by 
bfc0: 3c 74 74 3e 62 6f 72 67 20 70 68 6f 6e 65 69 6e  <tt>borg phonein
bfd0: 66 6f 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e  fo</tt>.....<tt>
bfe0: 3c 3c 49 6d 61 67 65 43 61 70 74 75 72 65 3e 3e  <<ImageCapture>>
bff0: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 41 20 70  </tt>....    A p
c000: 72 65 76 69 65 77 20 63 61 6d 65 72 61 20 69 6d  review camera im
c010: 61 67 65 20 69 73 20 72 65 61 64 79 20 61 6e 64  age is ready and
c020: 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64   can be obtained
c030: 20 62 79 20 3c 74 74 3e 62 6f 72 67 20 63 61 6d   by <tt>borg cam
c040: 65 72 61 20 69 6d 61 67 65 20 3c 69 3e 70 68 6f  era image <i>pho
c050: 74 6f 3c 2f 69 3e 3c 2f 74 74 3e 20 6f 72 20 3c  to</i></tt> or <
c060: 74 74 3e 62 6f 72 67 20 63 61 6d 65 72 61 20 67  tt>borg camera g
c070: 72 65 79 69 6d 61 67 65 20 3c 69 3e 70 68 6f 74  reyimage <i>phot
c080: 6f 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 54 68 65 20  o</i></tt>. The 
c090: 66 69 65 6c 64 20 3c 74 74 3e 25 78 3c 2f 74 74  field <tt>%x</tt
c0a0: 3e 20 72 65 70 72 65 73 65 6e 74 73 20 74 68 65  > represents the
c0b0: 20 63 61 6d 65 72 61 20 63 61 70 74 75 72 65 20   camera capture 
c0c0: 73 74 61 74 65 20 28 74 72 75 65 20 77 68 65 6e  state (true when
c0d0: 20 70 72 65 76 69 65 77 20 69 6d 61 67 65 73 20   preview images 
c0e0: 61 72 65 20 63 61 70 74 75 72 65 64 2c 20 66 61  are captured, fa
c0f0: 6c 73 65 20 77 68 65 6e 20 63 61 70 74 75 72 65  lse when capture
c100: 20 77 69 6c 6c 20 62 65 20 73 74 6f 70 70 65 64   will be stopped
c110: 29 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 53 68 75 74  ).....<tt><<Shut
c120: 74 65 72 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  ter>></tt>....  
c130: 20 20 54 68 65 20 63 61 6d 65 72 61 20 69 73 20    The camera is 
c140: 61 62 6f 75 74 20 74 6f 20 74 61 6b 65 20 61 20  about to take a 
c150: 4a 50 45 47 20 69 6d 61 67 65 2e 0d 0a 0d 0a 3c  JPEG image.....<
c160: 74 74 3e 3c 3c 50 69 63 74 75 72 65 54 61 6b 65  tt><<PictureTake
c170: 6e 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  n>></tt>....    
c180: 54 68 65 20 63 61 6d 65 72 61 20 68 61 73 20 74  The camera has t
c190: 61 6b 65 6e 20 61 20 4a 50 45 47 20 70 69 63 74  aken a JPEG pict
c1a0: 75 72 65 20 77 68 69 63 68 20 63 61 6e 20 62 65  ure which can be
c1b0: 20 6f 62 74 61 69 6e 65 64 20 61 6e 64 20 63 6f   obtained and co
c1c0: 6e 73 75 6d 65 64 20 62 79 20 3c 74 74 3e 62 6f  nsumed by <tt>bo
c1d0: 72 67 20 63 61 6d 65 72 61 20 6a 70 65 67 3c 2f  rg camera jpeg</
c1e0: 74 74 3e 2e 20 57 68 65 6e 20 74 68 65 20 65 76  tt>. When the ev
c1f0: 65 6e 74 20 69 73 20 72 65 70 6f 72 74 65 64 2c  ent is reported,
c200: 20 69 6d 61 67 65 20 63 61 70 74 75 72 65 20 6f   image capture o
c210: 66 20 70 72 65 76 69 65 77 20 69 6d 61 67 65 73  f preview images
c220: 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c   is automaticall
c230: 79 20 73 74 6f 70 70 65 64 2e 0d 0a 0d 0a 3c 74  y stopped.....<t
c240: 74 3e 3c 3c 55 53 42 41 74 74 61 63 68 65 64 3e  t><<USBAttached>
c250: 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 41 20  ></tt>....    A 
c260: 55 53 42 20 64 65 76 69 63 65 20 77 61 73 20 61  USB device was a
c270: 74 74 61 63 68 65 64 2e 20 54 6f 20 66 69 6e 64  ttached. To find
c280: 20 6f 75 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e   out information
c290: 20 61 62 6f 75 74 20 74 68 65 20 64 65 76 69 63   about the devic
c2a0: 65 2c 20 75 73 65 20 74 68 65 20 3c 74 74 3e 62  e, use the <tt>b
c2b0: 6f 72 67 20 75 73 62 64 65 76 69 63 65 73 3c 2f  org usbdevices</
c2c0: 74 74 3e 20 63 6f 6d 6d 61 6e 64 2e 20 54 68 69  tt> command. Thi
c2d0: 73 20 65 76 65 6e 74 20 69 73 20 67 65 6e 65 72  s event is gener
c2e0: 61 74 65 64 20 6f 6e 20 41 6e 64 72 6f 69 64 20  ated on Android 
c2f0: 34 2e 34 20 61 6e 64 20 6e 65 77 65 72 2e 0d 0a  4.4 and newer...
c300: 0d 0a 3c 74 74 3e 3c 3c 55 53 42 44 65 74 61 63  ..<tt><<USBDetac
c310: 68 65 64 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  hed>></tt>....  
c320: 20 20 41 6e 20 55 53 42 20 64 65 76 69 63 65 20    An USB device 
c330: 77 61 73 20 64 65 74 61 63 68 65 64 20 28 6f 70  was detached (op
c340: 70 6f 73 69 74 65 20 6f 66 20 3c 74 74 3e 3c 3c  posite of <tt><<
c350: 55 53 42 41 74 74 61 63 68 65 64 3e 3e 3c 2f 74  USBAttached>></t
c360: 74 3e 29 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 54 54  t>).....<tt><<TT
c370: 53 49 6e 69 74 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a  SInit>></tt>....
c380: 20 20 20 20 54 68 65 20 74 65 78 74 2d 74 6f 2d      The text-to-
c390: 73 70 65 65 63 68 20 66 61 63 69 6c 69 74 79 20  speech facility 
c3a0: 68 61 73 20 62 65 65 6e 20 73 74 61 72 74 65 64  has been started
c3b0: 20 75 70 20 6f 72 20 73 68 75 74 20 64 6f 77 6e   up or shut down
c3c0: 2e 20 54 68 65 20 25 78 20 73 75 62 73 74 69 74  . The %x substit
c3d0: 75 74 69 6f 6e 20 67 69 76 65 73 20 61 6e 20 69  ution gives an i
c3e0: 6e 64 69 63 61 74 69 6f 6e 20 66 6f 72 20 73 74  ndication for st
c3f0: 61 72 74 75 70 20 28 3d 30 29 2c 20 65 72 72 6f  artup (=0), erro
c400: 72 20 28 3d 2d 31 29 2c 20 61 6e 64 20 75 6e 61  r (=-1), and una
c410: 76 61 69 6c 61 62 69 6c 69 74 79 20 28 3c 2d 31  vailability (<-1
c420: 29 2e 20 53 75 70 70 6f 72 74 65 64 20 69 6e 20  ). Supported in 
c430: 41 6e 64 72 6f 69 64 20 34 2e 31 20 61 6e 64 20  Android 4.1 and 
c440: 68 69 67 68 65 72 2e 0d 0a 0d 0a 3c 74 74 3e 3c  higher.....<tt><
c450: 3c 54 54 53 53 74 61 72 74 3e 3e 3c 2f 74 74 3e  <TTSStart>></tt>
c460: 0d 0a 0d 0a 20 20 20 20 53 70 65 65 63 68 20 6f  ....    Speech o
c470: 75 74 70 75 74 20 6f 66 20 61 20 73 74 72 69 6e  utput of a strin
c480: 67 20 68 61 73 20 73 74 61 72 74 65 64 2e 20 54  g has started. T
c490: 68 65 20 25 78 20 73 75 62 73 74 69 74 75 74 69  he %x substituti
c4a0: 6f 6e 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74  on is equal to t
c4b0: 68 65 20 69 6e 74 65 67 65 72 20 72 65 74 75 72  he integer retur
c4c0: 6e 65 64 20 62 79 20 74 68 65 20 63 6f 72 72 65  ned by the corre
c4d0: 73 70 6f 6e 64 69 6e 67 20 3c 74 74 3e 62 6f 72  sponding <tt>bor
c4e0: 67 20 73 70 65 61 6b 3c 2f 74 74 3e 20 63 6f 6d  g speak</tt> com
c4f0: 6d 61 6e 64 2e 20 53 75 70 70 6f 72 74 65 64 20  mand. Supported 
c500: 69 6e 20 41 6e 64 72 6f 69 64 20 34 2e 31 20 61  in Android 4.1 a
c510: 6e 64 20 68 69 67 68 65 72 2e 0d 0a 0d 0a 3c 74  nd higher.....<t
c520: 74 3e 3c 3c 54 54 53 45 72 72 6f 72 3e 3e 3c 2f  t><<TTSError>></
c530: 74 74 3e 0d 0a 0d 0a 20 20 20 20 45 72 72 6f 72  tt>....    Error
c540: 20 69 6e 64 69 63 61 74 69 6f 6e 20 66 6f 72 20   indication for 
c550: 61 20 73 74 72 69 6e 67 20 74 6f 20 62 65 20 73  a string to be s
c560: 70 6f 6b 65 6e 20 62 79 20 3c 74 74 3e 62 6f 72  poken by <tt>bor
c570: 67 20 73 70 65 61 6b 3c 2f 74 74 3e 2e 20 54 68  g speak</tt>. Th
c580: 65 20 25 78 20 73 75 62 73 74 69 74 75 74 69 6f  e %x substitutio
c590: 6e 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68  n is equal to th
c5a0: 65 20 69 6e 74 65 67 65 72 20 72 65 74 75 72 6e  e integer return
c5b0: 65 64 20 62 79 20 74 68 65 20 63 6f 72 72 65 73  ed by the corres
c5c0: 70 6f 6e 64 69 6e 67 20 3c 74 74 3e 62 6f 72 67  ponding <tt>borg
c5d0: 20 73 70 65 61 6b 3c 2f 74 74 3e 20 63 6f 6d 6d   speak</tt> comm
c5e0: 61 6e 64 20 61 73 20 66 6f 72 20 74 68 65 20 3c  and as for the <
c5f0: 74 74 3e 3c 3c 54 54 53 53 74 61 72 74 3e 3e 3c  tt><<TTSStart>><
c600: 2f 74 74 3e 20 65 76 65 6e 74 2e 20 53 75 70 70  /tt> event. Supp
c610: 6f 72 74 65 64 20 69 6e 20 41 6e 64 72 6f 69 64  orted in Android
c620: 20 34 2e 31 20 61 6e 64 20 68 69 67 68 65 72 2e   4.1 and higher.
c630: 0d 0a 0d 0a 3c 74 74 3e 3c 3c 54 54 53 44 6f 6e  ....<tt><<TTSDon
c640: 65 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  e>></tt>....    
c650: 45 6e 64 20 6f 66 20 73 70 65 65 63 68 20 69 6e  End of speech in
c660: 64 69 63 61 74 69 6f 6e 20 66 6f 72 20 61 20 73  dication for a s
c670: 74 72 69 6e 67 20 74 6f 20 62 65 20 73 70 6f 6b  tring to be spok
c680: 65 6e 2e 20 20 54 68 65 20 25 78 20 73 75 62 73  en.  The %x subs
c690: 74 69 74 75 74 69 6f 6e 20 69 73 20 65 71 75 61  titution is equa
c6a0: 6c 20 74 6f 20 74 68 65 20 69 6e 74 65 67 65 72  l to the integer
c6b0: 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65   returned by the
c6c0: 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 3c   corresponding <
c6d0: 74 74 3e 62 6f 72 67 20 73 70 65 61 6b 3c 2f 74  tt>borg speak</t
c6e0: 74 3e 20 63 6f 6d 6d 61 6e 64 20 61 73 20 66 6f  t> command as fo
c6f0: 72 20 74 68 65 20 3c 74 74 3e 3c 3c 54 54 53 53  r the <tt><<TTSS
c700: 74 61 72 74 3e 3e 3c 2f 74 74 3e 20 65 76 65 6e  tart>></tt> even
c710: 74 2e 20 53 75 70 70 6f 72 74 65 64 20 69 6e 20  t. Supported in 
c720: 41 6e 64 72 6f 69 64 20 34 2e 31 20 61 6e 64 20  Android 4.1 and 
c730: 68 69 67 68 65 72 2e 0d 0a 0d 0a 3c 68 33 3e 3c  higher.....<h3><
c740: 74 74 3e 62 6f 72 67 20 61 63 74 69 76 69 74 79  tt>borg activity
c750: 3c 2f 74 74 3e 20 45 78 61 6d 70 6c 65 73 3c 2f  </tt> Examples</
c760: 68 33 3e 0d 0a 0d 0a 53 61 6d 70 6c 65 20 63 6f  h3>....Sample co
c770: 64 65 20 74 6f 20 6f 70 65 6e 20 61 20 62 72 6f  de to open a bro
c780: 77 73 65 72 20 6f 6e 20 74 68 65 20 54 63 6c 27  wser on the Tcl'
c790: 65 72 73 20 77 69 6b 69 3a 0d 0a 0d 0a 3c 76 65  ers wiki:....<ve
c7a0: 72 62 61 74 69 6d 3e 0d 0a 20 20 20 20 62 6f 72  rbatim>..    bor
c7b0: 67 20 61 63 74 69 76 69 74 79 20 61 6e 64 72 6f  g activity andro
c7c0: 69 64 2e 69 6e 74 65 6e 74 2e 61 63 74 69 6f 6e  id.intent.action
c7d0: 2e 56 49 45 57 20 68 74 74 70 3a 2f 2f 77 69 6b  .VIEW http://wik
c7e0: 69 2e 74 63 6c 2e 74 6b 20 74 65 78 74 2f 68 74  i.tcl.tk text/ht
c7f0: 6d 6c 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d  ml..</verbatim>.
c800: 0a 0d 0a 53 61 6d 70 6c 65 20 63 6f 64 65 20 74  ...Sample code t
c810: 6f 20 6c 61 75 6e 63 68 20 74 68 65 20 22 77 69  o launch the "wi
c820: 66 69 20 73 65 74 74 69 6e 67 73 22 20 70 61 67  fi settings" pag
c830: 65 3a 0d 0a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e  e:....<verbatim>
c840: 0d 0a 62 6f 72 67 20 61 63 74 69 76 69 74 79 20  ..borg activity 
c850: 61 6e 64 72 6f 69 64 2e 73 65 74 74 69 6e 67 73  android.settings
c860: 2e 57 49 46 49 5f 53 45 54 54 49 4e 47 53 20 7b  .WIFI_SETTINGS {
c870: 7d 20 7b 7d 20 7b 7d 20 7b 7d 20 7b 7d 0d 0a 3c  } {} {} {} {}..<
c880: 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 0d 0a 53 61  /verbatim>....Sa
c890: 6d 70 6c 65 20 63 6f 64 65 20 74 6f 20 63 61 70  mple code to cap
c8a0: 74 75 72 65 20 61 6e 20 69 6d 61 67 65 20 28 6f  ture an image (o
c8b0: 6e 6c 79 20 6d 61 6b 65 73 20 74 68 75 6d 62 6e  nly makes thumbn
c8c0: 61 69 6c 73 29 3a 0d 0a 0d 0a 3c 76 65 72 62 61  ails):....<verba
c8d0: 74 69 6d 3e 0d 0a 20 20 20 20 70 72 6f 63 20 63  tim>..    proc c
c8e0: 61 6c 6c 62 61 63 6b 20 7b 72 65 74 63 6f 64 65  allback {retcode
c8f0: 20 61 63 74 69 6f 6e 20 75 72 69 20 6d 69 6d 65   action uri mime
c900: 74 79 70 65 20 63 61 74 65 67 6f 72 69 65 73 20  type categories 
c910: 64 61 74 61 7d 20 7b 0d 0a 20 20 20 20 20 20 20  data} {..       
c920: 20 69 66 20 7b 24 72 65 74 63 6f 64 65 20 3d 3d   if {$retcode ==
c930: 20 2d 31 7d 20 7b 0d 0a 20 20 20 20 20 20 20 20   -1} {..        
c940: 20 20 20 20 23 20 53 55 43 43 45 53 53 0d 0a 20      # SUCCESS.. 
c950: 20 20 20 20 20 20 20 20 20 20 20 61 72 72 61 79             array
c960: 20 73 65 74 20 72 65 73 75 6c 74 20 24 64 61 74   set result $dat
c970: 61 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69  a..            i
c980: 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20  f {[info exists 
c990: 72 65 73 75 6c 74 28 64 61 74 61 29 5d 7d 20 7b  result(data)]} {
c9a0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
c9b0: 20 20 6d 79 70 68 6f 74 6f 20 63 6f 6e 66 69 67    myphoto config
c9c0: 75 72 65 20 2d 64 61 74 61 20 24 72 65 73 75 6c  ure -data $resul
c9d0: 74 28 64 61 74 61 29 0d 0a 20 20 20 20 20 20 20  t(data)..       
c9e0: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20       }..        
c9f0: 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 70 61  }..    }..    pa
ca00: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 49 6d  ckage require Im
ca10: 67 0d 0a 20 20 20 20 69 6d 61 67 65 20 63 72 65  g..    image cre
ca20: 61 74 65 20 70 68 6f 74 6f 20 6d 79 70 68 6f 74  ate photo myphot
ca30: 6f 0d 0a 20 20 20 20 62 6f 72 67 20 61 63 74 69  o..    borg acti
ca40: 76 69 74 79 20 61 6e 64 72 6f 69 64 2e 6d 65 64  vity android.med
ca50: 69 61 2e 61 63 74 69 6f 6e 2e 49 4d 41 47 45 5f  ia.action.IMAGE_
ca60: 43 41 50 54 55 52 45 20 7b 7d 20 7b 7d 20 7b 7d  CAPTURE {} {} {}
ca70: 20 7b 7d 20 7b 7d 20 63 61 6c 6c 62 61 63 6b 0d   {} {} callback.
ca80: 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 0d 0a  .</verbatim>....
ca90: 53 61 6d 70 6c 65 20 63 6f 64 65 20 74 6f 20 63  Sample code to c
caa0: 61 70 74 75 72 65 20 61 6e 20 69 6d 61 67 65 2c  apture an image,
cab0: 20 77 68 69 63 68 20 6d 61 6b 65 73 20 66 75 6c   which makes ful
cac0: 6c 20 73 69 7a 65 20 69 6d 61 67 65 73 20 62 75  l size images bu
cad0: 74 20 72 65 71 75 69 72 65 73 20 61 20 66 69 6c  t requires a fil
cae0: 65 20 6f 6e 20 65 78 74 65 72 6e 61 6c 20 73 74  e on external st
caf0: 6f 72 61 67 65 3a 0d 0a 0d 0a 3c 76 65 72 62 61  orage:....<verba
cb00: 74 69 6d 3e 0d 0a 20 20 20 20 70 72 6f 63 20 63  tim>..    proc c
cb10: 61 6c 6c 62 61 63 6b 20 7b 66 69 6c 65 6e 61 6d  allback {filenam
cb20: 65 20 72 65 74 63 6f 64 65 20 61 63 74 69 6f 6e  e retcode action
cb30: 20 75 72 69 20 6d 69 6d 65 74 79 70 65 20 63 61   uri mimetype ca
cb40: 74 65 67 6f 72 69 65 73 20 64 61 74 61 7d 20 7b  tegories data} {
cb50: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 7b 24 72  ..        if {$r
cb60: 65 74 63 6f 64 65 20 3d 3d 20 2d 31 7d 20 7b 0d  etcode == -1} {.
cb70: 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 53  .            # S
cb80: 55 43 43 45 53 53 0d 0a 20 20 20 20 20 20 20 20  UCCESS..        
cb90: 20 20 20 20 6d 79 70 68 6f 74 6f 20 63 6f 6e 66      myphoto conf
cba0: 69 67 75 72 65 20 2d 66 69 6c 65 20 24 66 69 6c  igure -file $fil
cbb0: 65 6e 61 6d 65 0d 0a 20 20 20 20 20 20 20 20 20  ename..         
cbc0: 20 20 20 63 61 74 63 68 20 7b 66 69 6c 65 20 64     catch {file d
cbd0: 65 6c 65 74 65 20 2d 66 6f 72 63 65 20 24 66 69  elete -force $fi
cbe0: 6c 65 6e 61 6d 65 7d 0d 0a 20 20 20 20 20 20 20  lename}..       
cbf0: 20 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 70   }..    }..    p
cc00: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 49  ackage require I
cc10: 6d 67 0d 0a 20 20 20 20 69 6d 61 67 65 20 63 72  mg..    image cr
cc20: 65 61 74 65 20 70 68 6f 74 6f 20 6d 79 70 68 6f  eate photo mypho
cc30: 74 6f 0d 0a 20 20 20 20 73 65 74 20 66 69 6c 65  to..    set file
cc40: 6e 61 6d 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20  name [file join 
cc50: 24 65 6e 76 28 45 58 54 45 52 4e 41 4c 5f 46 49  $env(EXTERNAL_FI
cc60: 4c 45 53 29 20 6d 79 70 68 6f 74 6f 2e 6a 70 65  LES) myphoto.jpe
cc70: 67 5d 0d 0a 20 20 20 20 62 6f 72 67 20 61 63 74  g]..    borg act
cc80: 69 76 69 74 79 20 61 6e 64 72 6f 69 64 2e 6d 65  ivity android.me
cc90: 64 69 61 2e 61 63 74 69 6f 6e 2e 49 4d 41 47 45  dia.action.IMAGE
cca0: 5f 43 41 50 54 55 52 45 20 7b 7d 20 7b 7d 20 7b  _CAPTURE {} {} {
ccb0: 7d 20 7b 7d 20 5c 0d 0a 20 20 20 20 20 20 20 5b  } {} \..       [
ccc0: 6c 69 73 74 20 7b 55 72 69 20 6f 75 74 70 75 74  list {Uri output
ccd0: 7d 20 66 69 6c 65 3a 2f 2f 24 66 69 6c 65 6e 61  } file://$filena
cce0: 6d 65 5d 20 5b 6c 69 73 74 20 63 61 6c 6c 62 61  me] [list callba
ccf0: 63 6b 20 24 66 69 6c 65 6e 61 6d 65 5d 0d 0a 3c  ck $filename]..<
cd00: 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 0d 0a 52 65  /verbatim>....Re
cd10: 61 64 69 6e 67 20 62 61 72 63 6f 64 65 73 20 75  ading barcodes u
cd20: 73 69 6e 67 20 74 68 65 20 3c 61 20 68 72 65 66  sing the <a href
cd30: 3d 22 68 74 74 70 3a 2f 2f 63 6f 64 65 2e 67 6f  ="http://code.go
cd40: 6f 67 6c 65 2e 63 6f 6d 2f 70 2f 7a 78 69 6e 67  ogle.com/p/zxing
cd50: 22 3e 5a 58 69 6e 67 20 62 61 72 63 6f 64 65 20  ">ZXing barcode 
cd60: 73 63 61 6e 6e 65 72 3c 2f 61 3e 20 28 77 68 69  scanner</a> (whi
cd70: 63 68 20 6e 65 65 64 73 20 74 6f 20 62 65 20 62  ch needs to be b
cd80: 65 20 69 6e 73 74 61 6c 6c 65 64 20 6f 6e 20 79  e installed on y
cd90: 6f 75 72 20 64 65 76 69 63 65 29 3a 0d 0a 0d 0a  our device):....
cda0: 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 20 20 20 20  <verbatim>..    
cdb0: 70 72 6f 63 20 62 61 72 63 6f 64 65 5f 72 65 61  proc barcode_rea
cdc0: 64 20 7b 63 6f 64 65 20 61 63 74 69 6f 6e 20 75  d {code action u
cdd0: 72 69 20 74 79 70 65 20 63 61 74 20 64 61 74 61  ri type cat data
cde0: 7d 20 7b 0d 0a 20 20 20 20 20 20 20 20 61 72 72  } {..        arr
cdf0: 61 79 20 73 65 74 20 72 65 73 75 6c 74 20 24 64  ay set result $d
ce00: 61 74 61 0d 0a 20 20 20 20 20 20 20 20 69 66 20  ata..        if 
ce10: 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 72 65  {[info exists re
ce20: 73 75 6c 74 28 53 43 41 4e 5f 52 45 53 55 4c 54  sult(SCAN_RESULT
ce30: 29 5d 7d 20 7b 0d 0a 20 20 20 20 20 20 20 20 20  )]} {..         
ce40: 20 20 20 23 20 74 68 61 74 20 69 73 20 74 68 65     # that is the
ce50: 20 62 61 72 63 6f 64 65 0d 0a 20 20 20 20 20 20   barcode..      
ce60: 20 20 20 20 20 20 23 20 72 65 73 75 6c 74 28 53        # result(S
ce70: 43 41 4e 5f 52 45 53 55 4c 54 5f 46 4f 52 4d 41  CAN_RESULT_FORMA
ce80: 54 29 20 69 73 20 74 68 65 20 62 61 72 63 6f 64  T) is the barcod
ce90: 65 20 66 6f 72 6d 61 74 0d 0a 20 20 20 20 20 20  e format..      
cea0: 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20    }..    }....  
ceb0: 20 20 62 6f 72 67 20 61 63 74 69 76 69 74 79 20    borg activity 
cec0: 63 6f 6d 2e 67 6f 6f 67 6c 65 2e 7a 78 69 6e 67  com.google.zxing
ced0: 2e 63 6c 69 65 6e 74 2e 61 6e 64 72 6f 69 64 2e  .client.android.
cee0: 53 43 41 4e 20 7b 7d 20 7b 7d 20 7b 7d 20 7b 7d  SCAN {} {} {} {}
cef0: 20 7b 7d 20 62 61 72 63 6f 64 65 5f 72 65 61 64   {} barcode_read
cf00: 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0a 5a 20  ..</verbatim>.Z 
cf10: 64 32 31 34 35 65 36 39 38 34 64 32 39 39 65 31  d2145e6984d299e1
cf20: 61 64 34 35 39 31 66 66 61 37 33 32 30 32 35 32  ad4591ffa7320252
cf30: 0a                                               .